Bugün bununla karşılaştım ve C # derleyicisinin neden bir hata atmadığına dair hiçbir fikrim yok.
Int32 x = 1;
if (x == null)
{
Console.WriteLine("What the?");
}
X'in nasıl muhtemelen boş olabileceği konusunda kafam karıştı. Özellikle bu atama kesinlikle bir derleyici hatası verdiğinden:
Int32 x = null;
X'in boş olması mümkün mü, Microsoft bu denetimi derleyiciye koymamaya mı karar verdi yoksa tamamen gözden mi kaçtı?
Güncelleme: Bu makaleyi yazmak için kodla uğraştıktan sonra, derleyici aniden ifadenin asla doğru olmayacağına dair bir uyarı ile geldi. Şimdi gerçekten kayboldum. Nesneyi bir sınıfa koydum ve şimdi uyarı ortadan kalktı, ancak soruyla bırakıldı, bir değer türü boş olabilir mi?
public class Test
{
public DateTime ADate = DateTime.Now;
public Test ()
{
Test test = new Test();
if (test.ADate == null)
{
Console.WriteLine("What the?");
}
}
}
if (1 == 2)
. Kod yolu analizi yapmak derleyicinin işi değildir; statik analiz araçları ve birim testleri bunun içindir.