【问题标题】:How to deal with CS1721 when I really need to inherit from two classes?当我真的需要从两个类继承时如何处理CS1721?
【发布时间】:2011-09-24 02:09:42
【问题描述】:

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

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

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

但是,如果我想从具有大量方法的两个类继承,我该怎么办?

【问题讨论】:

  • 唯一的办法就是用接口封装,就像你说的那样。

标签: c# .net inheritance multiple-inheritance


【解决方案1】:

你没有。你不能。

这在 C# 或 .NET 中不受支持。

您使用多个接口实现,并且最多使用单个(非object)继承。在大多数情况下,即使是单继承也被过度使用;p

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

【讨论】:

  • 请小例子
  • @YumYumYum 具体是哪位?
  • public partial class AppDelegate : UIApplicationDelegate, UIResponder {如何“使用多接口实现”
【解决方案2】:

如您所知,不能从多个类继承...实际上唯一的方法就是照您说的做并使用接口。或者将编程语言更改为支持多重继承的语言,但我相信这无济于事!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 2016-05-18
    • 2011-01-02
    • 2011-09-04
    • 2014-05-26
    • 1970-01-01
    相关资源
    最近更新 更多