我今天碰到了这个问题,不知道为什么 C # 编译器没有抛出错误。
Int32 x = 1;
if (x == null)
{
Console.WriteLine("What the?");
}
我对 x 怎么可能是 null 感到困惑,特别是因为这个作业明确地抛出了一个编译器错误:
Int32 x = null;
有没有可能 x 会变成 null,微软只是决定不把这个检查放入编译器,还是完全错过了?
更新: 编写这篇文章的代码出了问题,编译器突然发出警告,表达式永远不会是真的。现在我真的迷路了。我将对象放入一个类中,现在警告消失了,但留下了一个问题,值类型最终是否为 null。
public class Test
{
public DateTime ADate = DateTime.Now;
public Test ()
{
Test test = new Test();
if (test.ADate == null)
{
Console.WriteLine("What the?");
}
}
}