可能重复:
C# 可以将值类型与 null 进行比较
为什么 C# 允许:
class MyClass
{
public int MyInt;
}
static void Main(string[] args)
{
MyClass m = new MyClass();
if (m.MyInt == null) // <------------- ?
Console.Write("......");
}
Resharper 说“表达式总是错误的” - 这显然是正确的,因为MyInt
是int
而不是int?
但是 C# 如何允许它编译呢?该属性将永远存在,它的类型是int
!