A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

什么是partial关键字啊?它有什么用途啊?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

7 个回复

正序浏览
pray 高级黑马 2014-4-26 07:54:40
8#
我是来收集资料滴...
回复 使用道具 举报
partial,部分之义,partial class,顾名思义为 部分类,msdn上称之为 分部类,可以将类或结构、接口或方法的定义拆分到两个或多个源文件中。每个源文件包含类型或方法定义的一部分,编译应用程序时将把所有部分组合起来。
partial 修饰符只能出现在紧靠关键字class、struct 或interface前面的位置(枚举或其它类型都不能使用partial)
要成为同一类型的各个部分的所有分部类型定义都必须在同一程序集和同一模块(.exe 或.dll 文件)中进行定义。分部定义不能跨越多个模块
类名和泛型类型参数在所有的分部类型定义中都必须匹配。泛型类型可以是分部的。每个分部声明都必须以相同的顺序使用相同的参数名。

什么情况下使用分部类:
处理大型项目时,使一个类分布于多个独立文件中可以让多位程序员同时对该类进行处理(相当于支持并行处理,很实用)
使用自动生成的源时,无需重新创建源文件便可将代码添加到类中。Visual Studio 在创建Windows 窗体、Web 窗体时都使用此方法。你不用编辑Visual Studio 所创建的文件,便可创建使用这些类的代码。换句话说:系统会自动创建一个文件(一般记录的是窗体及窗体中的控件的属性),另一个或几个文件记录的是用户自己编写的代码。这两部分分开可以使结构显得非常清晰,用户只需关注自己负责的那部分就行了(需要的话,这两部分可以互相调用)。等到了编辑运行的时候,系统会自动将这两部分合成一个文件。

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
     C#2.0提供的新关键字,用来将一个class、struct或interface的定义拆分,写在不同的源文件中。每个源文件包含类定义的一部分,编译应用程序时将把所有部分组合起来。在以下几种情况下需要拆分类定义:

    1.处理大型项目时,使一个类分布于多个独立文件中可以让多位程序员同时对该类进行处理。

    2.使用自动生成的源时,无需重新创建源文件便可将代码添加到类中。Visual Studio 在创建 Windows 窗体、Web 服务包装代码等时都使用此方法。无需编辑 Visual Studio 所创建的文件,便可创建使用这些类的代码。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
Partial:是C#2.0的新特性 Partial关键字起到把一个class分段组合作用,能用于多个接口或一个继承。也就是说,我们定义的一个类可以分开几个文件来存储,而各个文件都只是完成这个类的一部分功能。我们在使用这个类时,根本体会不到这个类是由几部分结合在一起共同组成的。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
asp.net需要为你的 _Default 类补充一部分代码。例如:
  1. public partial class _Default : System.Web.SessionState.IRequiresSessionState {
  2.       
  3.       
  4.        protected global::System.Web.UI.HtmlControls.HtmlForm form1;
  5.        protected System.Web.Profile.DefaultProfile Profile {
  6.            get {
  7.                return ((System.Web.Profile.DefaultProfile)(this.Context.Profile));
  8.            }
  9.        }

  10.        protected ASP.global_asax ApplicationInstance {
  11.            get {
  12.                return ((ASP.global_asax)(this.Context.ApplicationInstance));
  13.            }
  14.        }
  15.    }
复制代码
定义为partial,那么这些代码就不用直接写到你的cs文件里边,你也不会随便修改它、破坏它。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
局部类型允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。
(1) 类型特别大,不宜放在一个文件中实现。
(2) 一个类型中的一部分代码为程序自动生成的代码,不宜与我们自己编写的代码混合在一起。
(3) 需要多人合作编写一个类。
(4) 局部类型只适用于类、接口、结构,不支持委托和枚举。
(5) 同一个类型类前都要有修饰符 partial。一个类型的各个部分上指定的基类class必须一致。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
《C#高级编程》书中说明:partial关键字允许把类、结构或接口放在多个文件中。一般情况下,一个类存储在单个文件中,但有时,多个开发人员需要访问同一个类,或者某种类型的代码生成器生成了一个类的某部分,所以把类放在多个文件中是有益的。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马