-
partial
关键字
我们在开发
WinForm
时,
经常会看到
partial
关键字,
比如,
我们
新建一个
Windows
Form
时,后台代码自动添加如下:
1
public
partial
class
Form1 : Form
2
{
3
public
Form1()
4
{
5
InitializeComponent();
6
}
7
}
《
C#
高级编程》书中说明:
partial
关键字允许把类、结构
或接口放在多个文件中。一般
情况下,一个类存储在单个文件中,
但有时,
多个开发人员需要访问同一个类,或者某种类
型的代
码生成器生成了一个类的某部分,所以把类放在多个文件中是有益的。
也就是说,我们定义的一个
类可以分开几个文件来存储,而各个文件都只是完成这个类
的一部分功能。
我们在使用这个类时,
根本体会不到这个类是由几部分结合在一起共同组成<
/p>
的。比如我分别在两个地方定义了
Box
类的一部分:
public
partial
class
Box
{
public
Box(
string
newBoxName)
{
boxName = newB
oxName;
//
在这个部分类中,并没有出现
boxName
局部变量。但是却是
可以使用的。<
/p>
}
public
void
Open()
{
//
打开盒子
ine(boxName +
}
}
public
partial
class
Box
{
private
string
boxName =
string
.Empty;
//boxName
是在这个部分类中定义的哦
public
void
Close()
{
//
关闭盒子
ine(boxName +
}
};
上面的代码等同于下面的
Box
类:<
/p>
public
class
Box
{
private
string
boxName =
string
.Empty;
public
Box(
string
newBoxName)
{
boxName =
newBoxName;
}
public
void
Open()
{
//
打开盒子
ine(boxName +
}
public
void
Close()
{
//
关闭盒子
ine(boxName +
}
}
书中还有一段:
在把部分类编
译到类型中时,会合并属性、
XML
注释、接口、一般类型
p>
的参数属性和成员。
所以自己可以去设计一些小
Demo
去尝试一下。现在回到最开始的问题,为什么新建立<
/p>
的
Winows Form
的类定义成了
一个部分类。
我们打开
文件,
可以看到,
原来
Form1
的另一部分类是在这个文件中设计的。这个部分类中定义了我们使用的控件、
事件委
托以及如
Dispose
方法等。因为这里面的代码都是自动生
成的,因此设计成了一个
部分类。
OK
,原来
partial
如此简单,就到这啦!
< br>
partial
关键字的含义和使用
partial
关键字
C#2.0
提供的新关键字,
用来将一个
class
、
struct
或
interface
的定义拆分,
写在不同的源文件中。
每个源文件包含类定义的一部分,
编译应
用程序时将把所有部分组合
起来。在以下几种情况下需要拆分类定义:
< br>
1.
处理
大型项目时,
使一个类分布于多个独立文件中可以让多位程序员同时对该类进行
处理。
2.<
/p>
使用自动生成的源时,无需重新创建源文件便可将代码添加到类中。
Visual Studio
在
创建
Windows
窗体、
Web
服务包装代码等时都使用此方法。无需编辑
Visual Studio
所创
建
的文件,便可创建使用这些类的代码。
用法如下:
[modifiers]
partial type
modifier
包括
abstract
new
override
virtual
static
extern
和四个访
问修饰符
(public
private
protected internal)
其中的一个。
Type
包括
class struct
interface
其中的一个。
看下面的定义
:
public
partial class Employee
...{
public void DoWork()
...{}
}
public
partial class Employee
...{
public void GoToLunch()
...{}
}
p>
以上代码定义了一个类
Employee
,
该类有两个方法
DoWork()
和
G
oToLunch()
,你完全
可以把以上代码看作是
:
而实际上编译器在编译时也是这么合并的。编译器在编译时会
把一个
partial
类所有的信息放到一起,我们可以再来扩充一下。假如
我们已经定义好了两
个接口
:
我们的类
定义如下:
这在开发分布式系统时是很有必要的,多个程序员只要分
p>
别开发自己的一部分就可以了。
public class Employee
...{
-
-
-
-
-
-
-
-
-
上一篇:英文实习评语
下一篇:VS-C++2010入门教程