只是好奇,在C#中围绕MustOverride的方式?

时间:2009-09-14 17:24:45

标签: c#

继承时,有没有办法不强制包含具有MustOverride属性的成员?我正在开发一个自定义MembershipProvider,我只需要访问一些成员。这纯粹是一种美学的东西 - 我只是讨厌排除100行未使用的成员声明。

4 个答案:

答案 0 :(得分:13)

您可以右键单击继承的类并选择“实现此...”,它将为您抛出NotImplementedException()创建方法定义,直到您重写方法的代码。

答案 1 :(得分:7)

MustOverride(C#中的abstract)指定必须重写它。没有办法解决这个问题。

您可以让Visual Studio为您提供功能,但它们必须存在才能实例化类。

另一个选择:如果你要做多个版本,你可以创建一个实现成员的类(抛出NotImplementedException,或什么也不做),然后从THAT类派生。您的具体版本只需要覆盖您希望的特定方法。

答案 2 :(得分:5)

不,没有。
顺便说一句,MustOverride通常在C#中称为抽象。

答案 3 :(得分:2)

是的,有......也宣称你的班级是抽象的! :-P

现在,说真的,只要想一想。如果你不在非抽象类中实现抽象成员,想象在调用没有实现的方法时会在运行时发生什么?在C ++中,这是可能的,你会得到一个“纯虚函数调用”错误。