继承树在c#中有多深?

时间:2014-01-30 07:28:34

标签: c# .net inheritance

继承树在c#中有多深? 我们假设我有一个班级A,并且我创建了一个源自B的新班级A。我创建了一个名为C的新类,它派生自B,依此类推。

我可以用这种方式创建多少个类A

继承树是否有限制?

public class A
{
 ...
 ...        
}

public class B:A
{
 ... 
 ...                       
}

public class C:B
{
 ...
 ...
}

public class D:C
{
 ...  
 ...
}   

4 个答案:

答案 0 :(得分:5)

C#规范没有限制。

根据内部表的大小,每个实现很可能都有一些非常大的限制。

在正常的手写代码中你不可能在任何平台上点击。自动生成的代码有一定的机会达到编译器/运行时限制(如方法大小或名称长度)。如果感兴趣的话,你可以尝试限制自己 - 通常软件限制恰好是2的幂(如16K / 65K开始)。

答案 1 :(得分:4)

没有限制,但保持继承层次非常简单是非常好的准则。

您还可以在MSDN上找到代码分析,当层次结构超过4级时会设置警告:

  

CA1501: Avoid excessive inheritance

     

<强>原因
  一个类型在其继承层次结构中超过四个级别。

答案 2 :(得分:3)

据我所知,没有明确的限制,但我会说保持4-6或最多单个深度数字,不再会产生不必要的复杂性 - “让事情尽可能简单,不简单” - 爱因斯坦。

以下是您可能会发现有用的链接:

http://blogs.msdn.com/b/zainnab/archive/2011/05/19/code-metrics-depth-of-inheritance-dit.aspx

快乐编码

答案 3 :(得分:1)

我认为没有真正的限制。