10
C#可以将值类型比较为null
我今天遇到了这个问题,不知道为什么C#编译器没有抛出错误。 Int32 x = 1; if (x == null) { Console.WriteLine("What the?"); } 我对x怎么可能为null感到困惑。特别是由于此分配肯定会引发编译器错误: Int32 x = null; x是否有可能成为null,Microsoft是否只是决定不将此检查放入编译器,还是完全错过了? 更新:在弄乱编写本文的代码之后,突然编译器提出了警告,该表达式永远不会为真。现在我真的迷路了。我将对象放到一个类中,现在警告已经消失了,但还有一个问题,值类型最终是否可以为null。 public class Test { public DateTime ADate = DateTime.Now; public Test () { Test test = new Test(); if (test.ADate == null) { Console.WriteLine("What the?"); } } }