.net - 在 .net 中强制继承

标签 .net inheritance

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

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

最佳答案

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

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

  • 您可以将 BaseEntity 设为抽象类,这样无论何时处理 BaseEntity 的实例,您实际上都在处理某个派生类的实例。<
  • 您可以使用带有约束的类型参数来编写泛型类型或方法,这样类型参数必须是 BaseEntity 或派生类:

    public void EntityLoader<T> where T : BaseEntity
    

这些都不是您要求的,但它们是可用的。

关于.net - 在 .net 中强制继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4264101/

相关文章:

c# - EntityFramework 上下文未保存

C# 每个派生类上都有相同的变量,无论是静态变量还是非静态变量

php - 在PHP中的另一个类中扩展一个类

postgresql - View 和带有继承的分区之间的区别

c# - 关于实例化抽象类的子类的疑问

c# - 无法分配从方法返回的结构的属性

c# - 使用 SimpleInjector 的同一组单例进行多个 RegisterAll 注册

Java Arraylist 和继承调用正确的方法。帮助

.net - 在调试器下运行时更改程序流程

c# - List 的 Protocol buffer 序列化