typeof(int) == typeof(int)
这个表达式如何求值??
当我使用
Console.WriteLine(typeof(int));
它使用对象的ToString()
方法输出System.Int32
。所以我假设在这个表达式中
typeof(int) == typeof(int)
ToString()
将两者都转换为 System.Int32
,然后比较它们的字符串。是真的吗??
或者其他事情发生
最佳答案
没有。像其他所有类通常所做的那样,它使用相等比较器 (==
) System.Type
已被覆盖,并且 Equals
方法在两者之一上实例来检查它们是否相等。
typeof(int)
返回一个 Type
,因此 Type.Equals
被调用。可以看源here .
你会看到它最终使用这个来比较两个实例:
return (Object.ReferenceEquals(this.UnderlyingSystemType, o.UnderlyingSystemType));
关于c# - == 运算符如何与 System.Type 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26211681/