覆盖一个方法但不覆盖另一个方法时的编译器警告

时间:2009-05-14 12:09:02

标签: .net

当一个类重写一个方法但不覆盖相关函数时,我想要一个编译器警告。你是怎么做到的?

例如,如果重写Object.Equals,如果不重写Object.GetHashCode(),则会收到警告。

3 个答案:

答案 0 :(得分:5)

基本上,你不能。这是防止混乱的一个特例。

你能做的最好的事情是编写一个FxCop规则来检测它。

答案 1 :(得分:0)

您无法创建自己的编译器警告,但是您可以创建运行时警告,例如(如果覆盖不调用基本方法)具有由第一个基本方法设置的标志,然后检查该标记通过第二种基本方法。或者你可以用反射做一些更复杂的事情。堆栈跟踪以检查运行时的正确用法。

答案 2 :(得分:0)

我认为你可以用一些属性和一些反思来做到这一点,但它会很快变得混乱。