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

在我的C#代码中,我想要一个inheritance自System.MarshalByRefObjectSystem.Security.Principal.GenericIndentity类的CustomIdentity类。

但是当我尝试编写这样的inheritance时,C#会反对CS1721错误,说我不能直接从多个类inheritance。

现在在这种情况下,很容易克服这一点 – 我将inheritanceIIdentity ,添加GenericIdentity成员变量并通过该成员变量重新实现所有IIdentity方法。

但是如果我想用两大类方法inheritance两个类,我该怎么做?

你没有。 你不能。

C#或.NET不支持。

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

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

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