【发布时间】:2016-12-25 15:54:36
【问题描述】:
我有课
abstract class EmployeeBase
{
}
我希望这个EmployeeBase 不应该用作我的任何其他类的属性。只有派生自EmployeeBase 的类可用于在任何其他类中声明属性。有可能实现吗?如果有,怎么做?
【问题讨论】:
-
你不能,基本上。你为什么想要?继承的全部意义在于您可以使用抽象类——很多代码不需要依赖于所使用的实现。
-
在使用 EF 代码优先方法时,我想避免为基类创建字段。我只希望在创建表时使用继承的类。
-
所以一定要自己做。如果你真的想要的话,你总是可以编写测试来通过反射来检查这一点 - 但语言中没有任何内容。
-
虽然没有什么能阻止你说创建
class MissPiggy { EmployeeBase Golly {get;set;} },VS 会很高兴地编译它,你必须在你的 DEV 机器上或在你的 CI/gated 上用nDepend 检测它复选框。