我们可以在asp.net aspx页面中继承更多的类吗?

时间:2010-09-02 11:16:24

标签: asp.net

我想继承多个类是否有任何方法?

例如在 login.aspx 页面中:

<%@ page  language="c#" codefile="nishant.aspx.cs" autowireup="true" inherit="nishant"%>

现在代码隐藏文件

nishant.aspx.cs:

class nishant
{
    //code...
}

class bill
{
    //code.....
}

现在,我想继承法案课程然后我将如何?

5 个答案:

答案 0 :(得分:4)

.NET不支持多重继承,这包括asp.net,所以不,这是不可能的。

如果您想共享功能,可以让nishant类继承bill类,或者反过来。然后,您的页面可以继承继承类并访问它们的功能。

另一个选择是从一个类继承并实现一个接口(或几个接口),但是你可以实现多个接口的事实与多重继承不同。

还有其他事情可以做,取决于你想要实现的目标(我主要考虑的是composition与继承)。

答案 1 :(得分:2)

不允许多重继承。唯一的方法是:

public class Bill : Page
{ }

public class Nishant : Bill
{ }

但你应该考虑一下你的设计。通常不需要这种方法。

答案 2 :(得分:1)

没有。从本质上讲,.Net只允许单一继承。最好你可以实现一个接口,但你仍然必须在你的nishant类中拥有代码或将功能提取到你的账单类并进行函数调用。

虽然在你提到的情况下,这实际上并不是多重继承。您的nishant类必须是System.Web.UI.Page类型。因此,如果您创建一个带有“账单类”的库,则可以继承它。

public class bill : System.Web.UI.Page
{
    // Your custom code
}

///

public class nishant : bill
{

}

答案 3 :(得分:1)

.NET不支持多重继承(一个继承自两个或更多类的类)。

但是,您可以拥有任意数量的父类。看看装饰模式。

或者使用界面,你可以拥有多个。

答案 4 :(得分:0)

简而言之:实现接口并使用扩展方法

实现接口可能是要走的路,实际上取决于你想要继承的功能。 您可以在此处阅读有关继承和接口的信息:http://msdn.microsoft.com/en-us/library/ms973861.aspx

当您实现接口但不希望将相同的代码复制到实现某个接口的每个类时,您还可以为接口编写扩展方法。在此处阅读有关扩展方法的更多信息:http://msdn.microsoft.com/en-us/library/bb384936.aspx