ASP.NET多重继承

ASP.NET多重继承,asp.net,multiple-inheritance,Asp.net,Multiple Inheritance,我陷入了一个疑问。。。 我有一个aspx页面,它必须继承2个类: 1) 类扩展:页面,IPostBackEventHandler 2) mydll.classX 但我无法做到这一点。 任何可以建议的解决方法都会非常有用 谢谢因为你不能在看起来像C的地方进行多重继承,我想你必须: a。复制myDll.classX的公共接口,并将调用转发到myDll.classX的实例 或 b。使myDll.classX继承页面,但这可能不是一个真正的选项 如果没有更多关于您要完成什么的信息,我真的看不到任何其他选

我陷入了一个疑问。。。 我有一个aspx页面,它必须继承2个类:

1) 类扩展:页面,IPostBackEventHandler 2) mydll.classX

但我无法做到这一点。 任何可以建议的解决方法都会非常有用


谢谢

因为你不能在看起来像C的地方进行多重继承,我想你必须:

a。复制myDll.classX的公共接口,并将调用转发到myDll.classX的实例

b。使myDll.classX继承页面,但这可能不是一个真正的选项


如果没有更多关于您要完成什么的信息,我真的看不到任何其他选项。

因为您不能在看起来像C的情况下执行多重继承,我认为您必须:

a。复制myDll.classX的公共接口,并将调用转发到myDll.classX的实例

b。使myDll.classX继承页面,但这可能不是一个真正的选项


如果没有更多关于您试图完成什么的信息,我真的看不到任何其他选项。

您不能从.NET中的多个类继承。您应该研究以下方法之一来解决您的问题:

  • 使您的
    classX
    继承
    Page
    。现在您的新类可以继承
    classX
    ,它将是
    clasX
    Page
    的子类
  • 使用接口而不是类。使用
    IPostBackEventHandler
    ,您已经在这样做了。不能从多个类继承,但可以实现任意多个接口
  • 使用组合-也就是说,您的类有一个
    classX
    类型的成员。阅读有关面向对象设计模式的内容,这些模式可以帮助您以优雅的方式实现您想要的,从而使事情变得更简单。见这个问题:

    • 在.NET中不能从多个类继承。您应该研究以下方法之一来解决您的问题:

      • 使您的
        classX
        继承
        Page
        。现在您的新类可以继承
        classX
        ,它将是
        clasX
        Page
        的子类
      • 使用接口而不是类。使用
        IPostBackEventHandler
        ,您已经在这样做了。不能从多个类继承,但可以实现任意多个接口
      • 使用组合-也就是说,您的类有一个
        classX
        类型的成员。阅读有关面向对象设计模式的内容,这些模式可以帮助您以优雅的方式实现您想要的,从而使事情变得更简单。见这个问题:

      C#不支持多重继承。你能编辑DLL类吗?嗨,杰弗瑞,谢谢你的回复。不,我无法编辑dll类,这是我真正遇到的问题。C#不支持多重继承。你能编辑DLL类吗?嗨,杰弗瑞,谢谢你的回复。不,我不能编辑dll类,这是我真正卡住的地方。非常感谢您的快速响应。。我的classX是一个固定的dll类,我无法更改。。我将研究作文。。非常感谢您的快速回复。。我的classX是一个固定的dll类,我无法更改。。我将研究作文。。谢谢你的回复。My ClassX用于在用户界面上登录。此登录界面已在母版页中编码。但是我的aspx页面也有一些与aspx页面相关的代码,包括RaisePostBackEvent(),它必须位于类(class expand)中,为了使这个函数工作,我还需要继承它。所以,当我继承类expand时,我的登录功能停止工作。你能详细说明一下你要实现的目标吗?我很难理解在哪里需要使用Expand类。嗨,Rusmus,我的aspx页面(TestPage.aspx)有两个主要部分:1)母版页(有一个登录名,如果我的aspx页面没有继承mydll.ClassX,它就不起作用)2)TestPage的其他代码,包括IPostBackEventHandler事件。它调用RaisePostBackEvent()。因此此函数必须位于类(继承System.Web.UI.Page的类expand)内。因此,我的aspx页面需要继承类expand,以启用回发事件。所以,如果我继承类expand,登录功能就会失败。如果我继承了ClassX,那么我的C#代码拒绝识别网页上的gridview等组件。在这种情况下,我的答案中的选项b与Renans的第三个选项相同:使用合成。TestPage.aspx需要从Page继承以使ASP.Net框架正常工作,因此如果您无法更改ClassX,则需要复制接口的相关部分并在内部使用ClassX实例。非常感谢Rusmus,将尝试实现它。Hi Rusmus,感谢您的回复。My ClassX用于在用户界面上登录。此登录界面已在母版页中编码。但是我的aspx页面也有一些与aspx页面相关的代码,包括RaisePostBackEvent(),它必须位于类(class expand)中,为了使这个函数工作,我还需要继承它。所以,当我继承类expand时,我的登录功能停止工作。你能详细说明一下你要实现的目标吗?我很难理解在哪里需要使用Expand类。嗨,Rusmus,我的aspx页面(TestPage.aspx)有两个主要部分:1)母版页(有一个登录名,如果我的aspx页面没有继承mydll.ClassX,它就不起作用)2)TestPage的其他代码,包括IPostBackEventHandler事件。它调用RaisePostBackEvent()。因此此函数必须位于类(继承System.Web.UI.Page的类expand)内。因此,我的aspx页面需要继承类expand,以启用回发事件。所以,如果我继承类expand,登录功能就会失败。如果我继承ClassX,那么我的C#代码会拒绝识别网页上的gridview等组件,如果是这样的话,那么您就