SORU
22 Mayıs 2009, Cuma


Orada herhangi bir şekilde C# uzantısı yöntemi ile bir sınıf yöntemi geçersiz kılmak için?

Uzantısı yöntemi ile bir sınıf yöntemi geçersiz kılmak isterim vesilelerle olmuştur. C bunu yapmak için herhangi bir yolu var# mı?

Örneğin:

public static class StringExtension
{
    public static int GetHashCode(this string inStr)
    {
        return MyHash(inStr);
    }
}

Dava nerede istiyordum yapmak yapabilmek için mağaza karmasının bir dize içine bir veritabanı ve aynı değeri olmak üzere, tüm sınıfları kullanmak için string sınıfının karma (yani Sözlük, vb.) -İnşa beri .Karma algoritma bir sonraki Çerçeve sürümünden uyumlu olmasını garanti edilmez Net, benim kendi ile değiştirmek istiyorum.

Uzantısı yöntemi ile bir sınıf yöntemi string sınıfı için sadece özel değil yani geçersiz kılmak isterdim nerede karşılaştığım diğer dava veya GetHashCode yöntemi vardır.

Varolan bir sınıf sınıflara off ile bunu yapabileceğimi biliyorum ama bir çok olayda uzantılı bunu yapabilmek için kullanışlı olurdu.

CEVAP
22 Mayıs 2009, Cuma


Hayır; bir uzantısı yöntemi hiç uygun bir imza ile bir örnek yöntemi önceliklidir, ve asla polimorfizmi katılır (GetHashCode virtual bir yöntemdir).

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • hans peder sahl

    hans peder s

    22 Temmuz 2009
  • KarnasCamillo

    KarnasCamill

    24 EKİM 2007
  • National Geographic

    National Geo

    7 Mayıs 2006