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

  • Chuck Testa

    Chuck Testa

    14 AĞUSTOS 2011
  • Jack Vale Films

    Jack Vale Fi

    8 ŞUBAT 2007
  • optionalinfo

    optionalinfo

    29 EKİM 2005