为什么c#允许这个? (null检查到int)

时间:2012-09-06 07:46:15

标签: c# nullable

  

可能重复:
  C# okay with comparing value types to null

为什么C#允许:

class MyClass
{
    public int MyInt;
}

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

Resharper说“表达总是假的” - 显然是 true ,因为MyIntint而不是int?

但是C#如何允许这个编译?该属性将始终存在,其类型为int

1 个答案:

答案 0 :(得分:-1)

我认为,这仅仅是为了编译原因的原因

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

永远不会执行的东西。

值得一提的是,是的,你没有得到错误,但你会收到警告。