在.net中强制继承

sam*_*mar 2 .net inheritance

是否可以在.net中强制继承?

例如,我有一个类库项目,其中包含一个基类"BaseEntity".我有3个类说"EntityA","EntityB"和"EntityC",所有这些类都继承自这个基类.现在,当我在这个项目中创建另一个类时,.net应该给我一个编译时错误,该类不会从类"BaseEntity"继承.

Jon*_*eet 7

您不能强制C#编译器使项目中的每个类都继承自特定的其他类,否.你也不应该.如果要创建一些辅助类或其他非实体类,该怎么办?为什么项目中的所有内容都应该是一个实体?

现在有两种方法可以强制继承:

  • 你可以让BaseEntity一个抽象类,所以,每当你处理的实例,BaseEntity你真的处理一些派生类的一个实例.
  • 您可以使用类型参数与约束使得类型参数必须是写一个泛型类型或方法BaseEntity或派生类:

    public void EntityLoader<T> where T : BaseEntity
    
    Run Code Online (Sandbox Code Playgroud)

这些都不是你所要求的,但它们是可用的.

  • @Lasse:没错。我建议他没有:) (2认同)