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

  • efaustus9

    efaustus9

    16 HAZİRAN 2006
  • Mindy

    Mindy

    20 NİSAN 2006
  • Phymec

    Phymec

    18 Temmuz 2009