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

  • BASS212M

    BASS212M

    15 Temmuz 2009
  • Living Waters

    Living Water

    9 AĞUSTOS 2006
  • modica89

    modica89

    24 HAZİRAN 2007