当我真的需要从两个类继承时如何处理CS1721?

时间:2011-06-28 07:33:08

标签: c# .net inheritance multiple-inheritance

在我的C#代码中,我想要一个继承自CustomIdentitySystem.MarshalByRefObject类的System.Security.Principal.GenericIndentity类。

然而,当我尝试编写这样的继承时,C#将使用CS1721 error对象说我不能直接从多个类继承。

现在在这种情况下很容易克服这个问题 - 我将继承IIdentity,添加GenericIdentity成员变量并通过该成员变量重新实现所有IIdentity方法。

但是如果我想用两大套方法继承两个类,我该怎么办呢?

2 个答案:

答案 0 :(得分:3)

你没有。你不能。

C#或.NET不支持。

您使用多个 接口实现 最多单个(非object)继承。在大多数情况下,甚至单一继承都被大量过度使用; p

要吸收这些方法,你必须使用某种封装。扩展方法提供了一种在类型之间共享方法的方法,以实现完整性。

答案 1 :(得分:2)

如你所知,不能从多个类继承...真正唯一的方法是按照你的说法去做并使用接口。或者将编程语言更改为支持多重继承的语言,但我确信这样做无济于事!