比如我想扩展 MVC 的 ViewPage
public class ViewPage2 : System.Web.Mvc.ViewPage
{
    public int Test {get ;set;}
}public class ViewPage2<T> : System.Web.Mvc.ViewPage<T>
{
    public int Test {get ;set;}
}如果真正扩展,还要涉及到:public class ViewUserControl2 : System.Web.Mvc.ViewUserControl
{
    public int Test {get ;set;}
}public class ViewUserControl2<T> : System.Web.Mvc.ViewUserControl<T>
{
    public int Test {get ;set;}
}当碰到这样的代码后,怎么办?

解决方案 »

  1.   

    接口?感觉不大合理。
    IEx
    {
        int Test{get;set;}
    }
    public class ViewPage2 : System.Web.Mvc.ViewPage:IEx
    {
        public class int Test{get;set;}
    }
      

  2.   

    .net不支持多类继承(C++除外),但支持多接口继承
      

  3.   

    感觉不大合理。 
    IEx 

        int Test{get;set;} 

    public class ViewPage2 : System.Web.Mvc.ViewPage,IEx 

        public class int Test{get;set;} 
    }
    //上面修改个地方,是‘,’号多继承肯定是接口,这是接口的好处,不然为什么有面向接口编程呢?
      

  4.   

    用聚合代替继承。在类内部嵌入一个需要继承的类,并且包装代码:比如 ClassA有一个方法:int Func1(string param1, int param2)class ClassB {
    private ClassA m_parentclass = new ClassA;public int Func1(string param1, int param2)
    {
        return m_parentclass.Func1(param1, param2);
    }}
      

  5.   


    可以考虑用内部类来继承另一个类 Java中可以这样实现'多继承'的功能
    C#中没试过 
    如果可以 就可以减少代码量