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

  • Moto Journal

    Moto Journal

    28 Mayıs 2007
  • Nick Pitera

    Nick Pitera

    8 NİSAN 2006
  • William Sledd

    William Sled

    24 EYLÜL 2006