如何定义必须继承的类?在C#
答案 0 :(得分:36)
您将该类标记为abstract
(这是VB.NET的{C#类似物Must Inherit
)。
这将确保无法直接实例化。
来自链接的MSDN文章:
abstract修饰符指示正在修改的内容具有缺少或不完整的实现。 abstract修饰符可以与类,方法,属性,索引器和事件一起使用。 在类声明中使用abstract修饰符来指示某个类仅用作其他类的基类。标记为抽象或包含在抽象类中的成员必须由派生自抽象类的类实现。
(强调我的)
答案 1 :(得分:7)
使用abstract
修饰符。
public abstract class MyClass()
{
...
}
答案 2 :(得分:5)
您可以将类定义为abstract
,或者为其提供仅受保护的构造函数。 abstract
更好。
答案 3 :(得分:4)
如果你想创建一个必须继承的类,你需要用abstract
修饰符标记它。
public abstract MyClass
{
}
答案 4 :(得分:2)
如果 是一个问题,那么代码中的派生或实现是不可能的。
可是:
您可以定义interface
以强制消费者实施。
或者您可以仅使用抽象成员定义abstract class
,以强制消费者覆盖所有。
希望这有帮助。
答案 5 :(得分:0)
最好是一个界面。
如果您需要模拟功能,并且不需要在编译时失败...
在基类中定义一个方法。抛出一个异常作为实现中的唯一一行。您可能想让问题信息非常清楚。
覆盖超类中的方法并实现它们。 如果您无法在超类中实现,则将获得异常。
并不完美,但是说您正在尝试从vb.net移植代码...这可能行得通。