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

  • Hak5

    Hak5

    7 EYLÜL 2005
  • Richard Laxa

    Richard Laxa

    30 AĞUSTOS 2012
  • undrmyumbrellaa

    undrmyumbrel

    25 Temmuz 2012