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
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).
'Eclipse içine bir proje aldıktan...
Raylar üzerinde Ruby belirleyici bir y...
Nasıl düzgün klon yöntemi geçersiz kıl...
Bir şekilde Java sınıf değişkenleri ge...
Neden iç sınıf özel final yöntemi geçe...