C#中有什么方法可以用扩展方法覆盖类方法?

有时候我想用扩展方法覆盖类中的方法。在C#中有什么方法可以做到这一点?

例如:

public static class StringExtension

{

public static int GetHashCode(this string inStr)

{

return MyHash(inStr);

}

}

我想要这样做的一种情况是能够将字符串的哈希存储到数据库中,并且使用该字符串类的哈希的所有类(例如Dictionary等)都使用相同的值。内置的.Net哈希算法不能保证从一个版本的Framework到下一个版本都兼容,我想用自己的版本替换它。

在其他情况下,我也想用扩展方法覆盖类方法,因此它不仅特定于字符串类或GetHashCode方法。

我知道我可以通过将现有类子类化来做到这一点,但是在很多情况下能够通过扩展来做到这一点很方便。

回答:

没有; 扩展方法永远不会比具有适当签名的实例方法优先,并且永远不会参与多态性(GetHashCode是一种virtual方法)。

以上是 C#中有什么方法可以用扩展方法覆盖类方法? 的全部内容, 来源链接: utcz.com/qa/416211.html

回到顶部