在c#中可以将隐藏代码页用partial分为多个文件吗?

解决方案 »

  1.   

    可以的,partial可以将一个类分散在多个文件中写,运行起来就是一个类,(需要.net2.0)
      

  2.   

    我是指aspx的隐藏代码文件比如default.aspx的隐藏文件default.aspx.cs用partial分成多个文件
      

  3.   

    当然可以了,partial 就是为这个目的才“出世”的
      

  4.   

    那default.aspx.cs的名空间是什么?好像默认是没有的。
      

  5.   

    名称空间、类声名都必须一样。//default.aspx1.cs
    namespace Test
    {
       public partial class A
       {
          ...
       }
    }//default.aspx1.cs
    namespace Test
    {
       public partial class A
       {
          ...
       }
    }使用 partial 关键字表明可在命名空间内定义该类、结构或接口的其他部分。所有部分都必须使用 partial 关键字。在编译时,各个部分都必须可用来形成最终的类型。各个部分必须具有相同的可访问性,如 public、private 等。如果将任意部分声明为抽象的,则整个类型都被视为抽象的。如果将任意部分声明为密封的,则整个类型都被视为密封的。如果将任意部分声明为基类型,则整个类型都将继承该类。指定基类的所有部分必须一致,但忽略基类的部分仍继承该基类型。各个部分可以指定不同的基接口,最终类型将实现所有分部声明所列出的全部接口。在某一分部定义中声明的任何类、结构或接口成员可供所有其他部分使用。最终类型是所有部分在编译时的组合。
      

  6.   

    楼上的对于一般的类来说是没有问题的,但对aspx的代码隐藏文件aspx.cs是不起作用的.
      

  7.   

    aspx.cs的还真没弄过 !学习
      

  8.   

    lxhcl2000(清风) ( ) 信誉:99  2006-07-21 17:13:00  得分: 0  楼上的对于一般的类来说是没有问题的,但对aspx的代码隐藏文件aspx.cs是不起作用的.
    ========================================================肯定可以的,不管是WebForm还是WinForm都可以,这点可以肯定。
      

  9.   

    WebForm的那你有没有试过呢?如果试过请赐教!
      

  10.   

    //default.aspx1.cs
    namespace Test
    {
       public partial class A
       {
          ...
       }
    }//default.aspx2.cs
    namespace Test
    {
       public partial class A
       {
          ...
       }
    }...//default.aspxn.cs
    namespace Test
    {
       public partial class A
       {
          ...
       }
    }
      

  11.   

    当然可以了,我不知道楼主有没有用过.net 2.0开发过WinForm的东西,如果你开发WinForm的话,你随便建立一个窗体,系统都会帮你把这个窗体的代码分成两个.cs存起来,一个是窗体.cs,另外个是窗体.Design.cs.
      

  12.   

    说可以的亲自试试以下代码,我个人认为2.0中aspx和它的隐藏代码aspx.cs本身就才用了partial技术分离,所以人为再把aspx.cs再分开2.0是不支持的。
    //default.aspx.cs
    public partial class _Default : System.Web.UI.Page
    {
       public partial class _Default : System.Web.UI.Page
        {
            private string g_id;
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    g_id = Page.Request["id"];
                }
            }
        }
    }
    //xxx.cs
    public partial class _Default 
    {
       private void test()
       {
           string _id=this.g_id;
       }
    }
      

  13.   

    好像分散的这几个类必须在一个命名空间下
    --
    当然是这样,如果不在命名空间下,都不是一个类了。还怎么Part?
      

  14.   

    楼主,把你的代码改成这样试试——//default.aspx.cs
    public partial class _Default : System.Web.UI.Page
    {
       public partial class _Default : System.Web.UI.Page
        {
            private string g_id;
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    g_id = Page.Request["id"];
                }
            }
        }
    }
    //xxx.cs
    public partial class _Default : System.Web.UI.Page // 加上继承关系
    {
       private void test()
       {
           string _id=this.g_id;
       }
    }