比如a.aspx.cs页面
有变量strA,如果strA==""则继承System.Web.UI.Page基类,否则继承page2(page2继承了page基类),这样怎么实现的

解决方案 »

  1.   

    typeof()
    取得 Type
    然后 IsSubclassOf() 判断。
      

  2.   

    if(this.GetType().BaseType == typeof(System.Web.UI.Page))
    {
        //当前窗体继承System.Web.UI.Page
    }
      

  3.   

    if(this.GetType().BaseType == typeof(System.Web.UI.Page))
    {
         //1 当前窗体继承System.Web.UI.Page
    }if(this is System.Web.UI.Page)
    {
         //2 当前窗体继承,或者有继承 System.Web.UI.Page
    }
    Page p = this as System.Web.UI.Page;
    if(p != null)
    {
         //3 当前窗体继承,或者有继承 System.Web.UI.Page
    }
      

  4.   

    if(this.GetType().BaseType == typeof(System.Web.UI.Page))
    {
         //1 当前窗体继承System.Web.UI.Page
    }if(this is System.Web.UI.Page)
    {
         //2 当前窗体继承,或者有继承 System.Web.UI.Page
    }
    Page p = this as System.Web.UI.Page;
    if(p != null)
    {
         //3 当前窗体继承,或者有继承 System.Web.UI.Page
    }
    Up
      

  5.   

    新建的web技术交流群,欢迎大家加入一起讨论:
    群号:29037453
      

  6.   

    用this Is System.Web.UI.Page
      

  7.   

    反向了
    目前很难办,也许net4可以毕竟对象设计是仿照现实的。不是说,长的像猴就是猴生的,而是因为是猴生的所以才长的像猴
      

  8.   

    前两天有个人说要写一个万能函数object 我万能(string option){...}它要“根据option”的不同而生成不同结果。那个至少从接口上来看还靠谱,只是从实际开发角度看根本没法跟这种开发者合作开发。而楼主你的“万能类型”,就更加无法让人知道它“是什么”了,更加无法用于实际跟人合作进行开发。大概是坐在家里看电影《2012》时想出来的编程招式吧。
      

  9.   

    应该还是可行的,毕竟page2是从page继承来的,不是完全无关的两个类。变量strA应该申明为page2类型,同时可能需要增加一个page的类型strB。判断之后如果需要是page类型的,把strA向上转型成strB。如果只考虑类是可行的,但是涉及到Page对象和事件的话,可能需要更多的代码。不过至少能做到在调用方法的时候先判断下调用父类的,还是父父类的。
      

  10.   


    群号:29037453 .
    net技术交流群,欢迎喜欢.net开发的同仁们一起讨论问题,解决问题,交流经验和技术!
      

  11.   

    它要“根据option”的不同而生成不同结果。那个至少从接口上来看还靠谱,只是从实际开发角度看根本没法跟这种开发者合作开发。
      

  12.   

    只有一个建议,就是把你的Page与Page2换成Interface,然后把你的继承换成组合方式来实现。