为什么C#允许:
class MyClass
{
public int MyInt;
}
static void Main(string[] args)
{
MyClass m = new MyClass();
if (m.MyInt == null) // <------------- ?
Console.Write("......");
}
Resharper说“表达总是假的” - 显然是 true ,因为MyInt
是int
而不是int?
但是C#如何允许这个编译?该属性将始终存在,其类型为int
!
答案 0 :(得分:-1)
我认为,这仅仅是为了编译原因的原因
if(false)
Console.WriteLine("never get here");
永远不会执行的东西。
值得一提的是,是的,你没有得到错误,但你会收到警告。