我见过很多人使用以下代码:
Type t = typeof(obj1);
if (t == typeof(int))
    // Some code here
但我知道你也可以这样做:
if (obj1.GetType() == typeof(int))
    // Some code here
或这个:
if (obj1 is int)
    // Some code here
就个人而言,我觉得最后一个是最干净的,但有什么我想念的吗?哪一个最好用,还是个人喜好?
为什么会这样
if (mycontrol.GetType() == typeof(TextBox))
{} 
这不是吗?
Type tp = typeof(mycontrol);
但这很有效
Type tp = mycontrol.GetType();
我自己使用is运算符来检查类型,但是当我使用typeof()和时,我的理解失败了GetType()
何时何地使用GetType()或typeof()?
两个表达式保证相同吗?
在通用方法中Foo<T> where T : new()......这个表达式总是 true吗?
typeof(T) == new T().GetType()
我不明白它怎么可能是假的,但也许我错过了一个边缘情况。
我认为以下任何相关问题都没有解决这个问题: