代码之家  ›  专栏  ›  技术社区  ›  andrewWinn

为什么ASPX代码隐藏文件声明为分部类?

  •  7
  • andrewWinn  · 技术社区  · 15 年前

    为什么ASPX页面的分部类后面有代码?

    5 回复  |  直到 11 年前
        1
  •  12
  •   Lucas Jones    15 年前

    我会推荐你看这个 MSDN Page (ASP.NET页类概述)。

    编译页时,ASP.NET 基于生成分部类 .aspx文件;此类是分部 类的代码隐藏类文件。 生成的分部类文件 包含页的声明 控制。此分部类启用 您的代码隐藏文件将用作 完整类的一部分 要求您声明控件 明确地。

    见下图:

    alt text http://img30.imageshack.us/img30/7692/msdnchart.gif

    这样,您就有了一个包含逻辑的类和一个包含设计器内容的类。在编译时,它作为一个整体生成。

        2
  •  4
  •   juan    15 年前

    因为类的其他部分(设计器的内容)对开发人员是隐藏的

    例如,而不是这个

    public MyBasePage : System.Web.UI.Page
    {
        ...
        protected System.Web.UI.Label lblName;
    
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        ...
    }
    

    ASP.NET在不同的物理文件中创建这些声明,并保留此声明

    public partial class MyBasePage : System.Web.UI.Page
    {
        ...
    
        protected void Page_Load(object sender, EventArgs e)
        {
        }
    
        ...
    }
    

    更多信息:

        3
  •  1
  •   JustLoren    15 年前

    分部声明允许您在其他文件中编写代码-只需将其放在同一个命名空间中,并将类命名为相同的名称,它们将被视为在同一个文件中。它非常适合向生成的文件添加功能。我经常使用它向LinqToSQL对象添加函数/属性。

        4
  •  1
  •   belugabob    15 年前

    部分文件的另一个原因是处理这样的情况:一些类定义是由工具生成的(并且可能在某个点重新生成),而类的其余部分是由您实现的。

    在这种情况下,不使用分部类将导致代码被覆盖,或者生成过程在执行其任务时遇到困难(如果它可以做到的话)。

    部分类就位后,生成的代码可以很容易地重新生成,而无需接触代码。

    另一个很好的例子是,当使用DataContext类for Linq to SQL时:真正聪明的东西被生成到一组部分类文件中,您可以提供实现——用于验证等等——在另一个部分类中,安全地知道重新生成不会破坏您的工作。

        5
  •  0
  •   Sujit Kumar Sahoo    11 年前

    aspx.cs使用分部类,因为在该类中访问的控件(如textbox、gridview)在.aspx文件(即物理上的另一个文件)中声明,因此一个类包含控件声明(.aspx文件)和另一个基于.aspx文件上声明的控件的业务逻辑。当它们被编译为一个整体类时。