SORU
21 EKİM 2009, ÇARŞAMBA


== null () C#!

C# 4, aşağıdaki programda sabit bir hata yüzünden baskı true. (LİNQPad deneyin)

void Main() { new Derived(); }

class Base {
    public Base(Func<string> valueMaker) { Console.WriteLine(valueMaker()); }
}
class Derived : Base {
    string CheckNull() { return "Am I null? "   (this == null); }
    public Derived() : base(() => CheckNull()) { }
}

Serbest modunda VS2008, bir InvalidProgramException atar. (Hata Ayıklama modunda gayet iyi çalışıyor)

VS2010 Beta 2 derleme değil (Beta 1 çalışmadım); bunu zor yoldan öğrendim

Saf C this == null yapmak için başka bir yolu var# mı?

CEVAP
21 EKİM 2009, ÇARŞAMBA


Bu gözlem another question StackOverflow bugün daha önce ilan edilmiş.

Marcgreat answer to that question gösteren göre spec (bölüm 7.5.7), olmamalısın mümkün erişim this içerik ve yetenek bunu yapmak için C# 3.0 derleyicisi olan bir hata. C# 4.0 derleyici doğru spec göre davranıyor (Beta 1, Bu derleme zamanında bir hata bile):

§ 7.5.7 Bu erişim

Birbu erişimoluşur ayrılmış anahtar kelime this.

bu erişim:

this

Birbu erişimtek izinblokörnek oluşturucu, bir örnek yöntemi veya bir örnek erişimci.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FlippinWindows | #1 Windows Tutorial Channel!

    FlippinWindo

    23 Mayıs 2010
  • Floortile83

    Floortile83

    16 Ocak 2010
  • Jesse Pimenta

    Jesse Piment

    5 EKİM 2011