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

  • 0TACTICAL0HIPPY0

    0TACTICAL0HI

    30 EYLÜL 2012
  • girleffect

    girleffect

    20 Mayıs 2008
  • williamfitzsimmons

    williamfitzs

    14 Mart 2008