有些场合我想用扩展方法重写类中的方法。有没有办法在C#中做到这一点?C#中有什么方法可以用扩展方法覆盖类方法吗?
例如:
public static class StringExtension
{
public static int GetHashCode(this string inStr)
{
return MyHash(inStr);
}
}
,我一直想做到这一点的情况是能够将一个字符串的哈希存储到数据库中,并有同样的价值被所有类使用的是使用字符串类的散列(即Dictionary等)。由于内置的.Net散列算法不能保证从一个版本的Framework到下一个版本兼容,我想用我自己的替换它。
我还遇到过其他一些情况,我想用一个扩展方法重写一个类方法,所以它不仅仅是特定于字符串类或GetHashCode方法。
我知道我可以通过继承一个现有的类来完成这个工作,但是在很多情况下能够使用扩展来完成这项工作会很方便。
由于字典是内存数据结构,哈希算法是否从框架的版本改变到下一个版本有什么不同?如果框架版本发生变化,那么显然应用程序已重新启动并且字典已重新构建。 – 2009-05-22 19:23:44