SORU
18 Mart 2009, ÇARŞAMBA


Kullanarak bir sınıf'türetilmiş bir tür statik ÜYE ler?

Bu ilginç bir uyarı ile karşılaştım 4.1, Resharper kullanarak: "türetilmiş bir tür) bir tür statik bir üye Erişim". İşte bu oluştuğu kod bir örnek:

class A {
    public static void SomethingStatic() {
       //[do that thing you do...]
    }
}

class B : A {
}

class SampleUsage {
    public static void Usage() {
        B.SomethingStatic(); // <-- Resharper warning occurs here
    }
}

Kimseye Bir statik üyelerinin kullanımında (varsa) B) ne olduğunu biliyor mu?

CEVAP
18 Mart 2009, ÇARŞAMBA


Bir yere olabilir yanıltıcı olduğunda statik bir fabrika yöntemi, örneğin WebRequest sınıf bir fabrika yöntemi Create izin verirsen bu tür kod yazılması erişim ile bir türetilmiş sınıf.

var request = (FtpWebRequest)HttpWebRequest.Create("ftp://ftp.example.com");

Burada request tipi FtpWebRequest ama kafa karıştırıcı çünkü göründüğü gibiydi oluşturulan bir HttpWebRequest (kardeş sınıf) bile Create yöntem aslında tanımlanan WebRequest (temel sınıf). Aşağıdaki kodu anlamı aynıdır, ama daha net

var request = (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com");

Sonuçta büyük sorun türetilmiş bir tür üzerinden bir statik erişim yok, ama kod genellikle yapmayarak daha nettir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • How It Should Have Ended

    How It Shoul

    5 Mart 2007
  • parlophone

    parlophone

    28 ŞUBAT 2006
  • pleated-jeans

    pleated-jean

    6 HAZİRAN 2013