8

可能重复:
C# 可以将值类型与 null 进行比较

为什么 C# 允许:

class MyClass
{
    public int MyInt;
}

static void Main(string[] args)
{
    MyClass m = new MyClass();
    if (m.MyInt == null) // <------------- ?
        Console.Write("......");
}

Resharper 说“表达式总是错误的” - 这显然是正确的,因为MyIntint而不是int?

但是 C# 如何允许它编译呢?该属性将永远存在,它的类型是int

4

1 回答 1

-1

我认为,这与编译的原因相同

if(false)
   Console.WriteLine("never get here");

永远不会执行的东西。

值得一提的是,是的,您不会收到错误消息,但是您会收到警告。

于 2012-09-06T07:52:19.500 回答