分部类--重温篇[好处,示例]
2
3partial:
4
5 可以将类、结构或接口的定义拆分到两个或多个源文件中。每个源文件包含类定义的一部分,编译应用程序时将把所有部分组合起来。在以下几种情况下需要拆分类定义:
6 处理大型项目时,使一个类分布于多个独立文件中可以让多位程序员同时对该类进行处理。
7 若要拆分类定义,请使用 partial 关键字修饰符,如下所示:
8public partial class Employee
9{
10 public void DoWork()
11 {
12 }
13}
14
15public partial class Employee
16{
17 public void GoToLunch()
18 {
19 }
20}
21 使用 partial 关键字表明可在命名空间内定义该类、结构或接口的其他部分。所有部分都必须使用 partial 关键字。在编译时,各个部分都必须可用来形成最终的类型。各个部分必须具有相同的可访问性,如 public、private 等。
22
23如果将任意部分声明为抽象的,则整个类型都被视为抽象的。如果将任意部分声明为密封的,则整个类型都被视为密封的。如果将任意部分声明为基类型,则整个类型都将继承该类。
24
25 指定基类的所有部分必须一致,但忽略基类的部分仍继承该基类型。各个部分可以指定不同的基接口,最终类型将实现所有分部声明所列出的全部接口。在某一分部定义中声明的任何类、结构或接口成员可供所有其他部分使用。最终类型是所有部分在编译时的组合
26**分部修饰符不可用于委托或枚举声明中。
27 嵌套类型可以是分部的,即使它们所嵌套于的类型本身并不是分部的也如此。例如:
28class Container
29{
30 partial class Nested
31 {
32 void Test() { }
33 }
34 partial class Nested
35 {
36 void Test2() { }
37 }
38}
39
40处理分部类定义时需遵循下面的几个规则:
41
42 要作为同一类型的各个部分的所有分部类型定义都必须使用 partial 进行修饰。例如,下面的类声明将生成错误:
43public partial class A { }
44//public class A { } // Error, must also be marked partial
45 partial 修饰符只能出现在紧靠关键字 class、struct 或 interface 前面的位置。
46
47 分部类型定义中允许使用嵌套的分部类型,例如:
48partial class ClassWithNestedClass
49{
50 partial class NestedClass { }
51}
52
53partial class ClassWithNestedClass
54{
55 partial class NestedClass { }
56}
57要成为同一类型的各个部分的所有分部类型定义都必须在同一程序集和同一模块(.exe 或 .dll 文件)中进行定义。分部定义不能跨越多个模块。
58
59类名和泛型类型参数在所有的分部类型定义中都必须匹配。泛型类型可以是分部的。每个分部声明都必须以相同的顺序使用相同的参数名。
60 下面的示例在一个分部类定义中声明类 CoOrds 的字段和构造函数,在另一个分部类定义中声明成员 PrintCoOrds。
61
62public partial class CoOrds
63{
64 private int x;
65 private int y;
66
67 public CoOrds(int x, int y)
68 {
69 this.x = x;
70 this.y = y;
71 }
72}
73
74public partial class CoOrds
75{
76 public void PrintCoOrds()
77 {
78 System.Console.WriteLine("CoOrds: {0},{1}", x, y);
79 }
80
81}
82
83class TestCoOrds
84{
85 static void Main()
86 {
87 CoOrds myCoOrds = new CoOrds(10, 15);
88 myCoOrds.PrintCoOrds();
89 }
90}
91
92
93According to MSDN.
94
95
96
分部类--重温篇[好处,示例]相关推荐
- .NET基础篇——分部类和分部方法
在面向对象的"封装闭合性"开发原则中,一向提倡的是把独立的功能封装在一个类里面的!但从Visual Studio 2005开发,系统提供了一个分部类的开发方式一直受到争议,很多人认 ...
- C#拾遗系列(9):继承、接口、扩展方法、分部类、类操作、Ref and Out、可空类型...
本文内容: 继承 Equal示例 结构和类 属性 Ref and Out 类操作 扩展方法 接口 可空类型 分部类 1. 继承 using System; using System.Collectio ...
- 分部类和方法的学习以及在LINQ中的应用(原创)
可以将 类或 结构. 接口或方法的定义拆分到两个或多个源文件中. 每个源文件包含类型或方法定义的一部分,编译应用程序时将把所有部分组合起来. 分部类 在以下几种情况下需要拆分类定义: 处理大型项目时, ...
- mysql分表存储_MySQL 分表存储的使用示例
分表存储是把记录保存在不同的表表会一个关联了在这里我们来看一篇关于MySQL 分表存储的使用示例,具体的例子如下文介绍. 一般我们项目中如果数据量特别大的话通常会考虑将某一表数据进行分表处理,例如:我 ...
- java 分部类_C#综合揭秘——分部类和分部方法
在面向对象的"封装闭合性"开发原则中,一向提倡的是把独立的功能封装在一个类里面的!但从Visual Studio 2005开发,系统提供了一个分部类的开发方式一直受到争议,很多人认 ...
- C 语言的分部类和分部方法,c# partial 分部类和分部方法
一.partial 它是一个关键字修饰符.可以将类或结构.接口或方法的定义拆分到两个或更多个源文件中. 每个源文件包含类型或方法定义的一部分,编译应用程序时将把所有部分组合起来.修饰符不可用于委托或枚 ...
- C#的分部类(partial)和方法
一.实现的效果 C#的分部关键字(partial)能够拆分一个类.一个结构.一个接口或一个方法为两个或更多个的文件,分部的每个文件都可以包含自己的类型和方法,程序编译时会将同类的分部内容合并为一个. ...
- partial 分部类-庞大类的瘦身计划
文章目录 使用情况 语法 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 一般来说,一个类.结构或者接口位于一个源文件中,但是某些情况,比如大型项目.特殊部署时,可能需要把一个类. ...
- 从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~三 分部类是否破坏了单一职责...
一 DBContext的构造方法,方法的重载 二 DBContext实例中,表实体对象是怎么被加入的 三 分部类是否破坏了单一职责 四 分部方法从另一方面定义了类型的操作规范 五 LINQ实体类中对属 ...
最新文章
- 循环数组的最大子段和
- VSCode来绘制流程图真是得心应手
- 在同一基准下对前端框架进行比较(2019年更新)
- MySQL高级 - 锁 - MyISAM表锁 - 小结
- python如何复制oracle数据_Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法...
- 我用系统的思想来编程
- linux应用程序启动时加载库错误问题
- 23. Yii 组件事件
- Use Jet OLE DB Provider 4.0 to Connect to ISAM Databases (连接Excel, Text等数据库)
- mergeBeanDefinition原理
- 移动应用开发学习笔记(一)
- 皇后游戏c语言,C语言中关于4皇后或8皇后问题!
- CSS实现水平垂直居中的方式有哪些?
- Ubuntu Linux 双网卡 局域网 共享上网 很简单的操作
- 避免踩踏悲剧|AI赋能城市应急,让智慧景区更安全
- 中国粒子对撞机曝光:迄今世界最大
- [转]在.NET CF2.0中调用DirectShow来处理视音频数据
- [转]漫画:混乱的标记语言XHTML2/HTML5(附中文版翻译)
- Xshell6软件分享
- *.rgb转换为*.jpg的操作