- 3
- 0
- 约3.63千字
- 约 6页
- 2018-01-28 发布于贵州
- 举报
partial关键字的含义和使用精选
partial关键字
??? 我们在开发WinForm时,经常会看到partial关键字,比如,我们新建一个Windows Form时,后台代码自动添加如下:
1?public?partial?class?Form1?:?Form2?{3?????public?Form1()4?????{5?????????InitializeComponent();6?????}7?}
??? ??? 《C#高级编程》书中说明:partial关键字允许把类、结构或接口放在多个文件中。一般情况下,一个类存储在单个文件中,但有时,多个开发人员需要访问同一个类,或者某种类型的代码生成器生成了一个类的某部分,所以把类放在多个文件中是有益的。??? 也就是说,我们定义的一个类可以分开几个文件来存储,而各个文件都只是完成这个类的一部分功能。我们在使用这个类时,根本体会不到这个类是由几部分结合在一起共同组成的。比如我分别在两个地方定义了Box类的一部分:
public?partial?class?Box{????public?Box(string?newBoxName)????{????????boxName?=?newBoxName;//在这个部分类中,并没有出现boxName局部变量。但是却是可以使用的。????}????public?void?Open()????{//打开盒子????????Console.WriteLine(boxName?+??is?opened);????}}public?partial?class?Box{????private?string?boxName?=?string.Empty;//boxName是在这个部分类中定义的哦????public?void?Close()????{//关闭盒子????????Console.WriteLine(boxName?+??is?closed);????}};
??? 上面的代码等同于下面的Box类:
public?class?Box{????private?string?boxName?=?string.Empty;????public?Box(string?newBoxName)????{????????boxName?=?newBoxName;????}????public?void?Open()????{//打开盒子????????Console.WriteLine(boxName?+??is?opened);????}????public?void?Close()????{//关闭盒子????????Console.WriteLine(boxName?+??is?closed);????}}
??? ??? 书中还有一段:在把部分类编译到类型中时,会合并属性、XML注释、接口、一般类型的参数属性和成员。??? ??? 所以自己可以去设计一些小Demo去尝试一下。现在回到最开始的问题,为什么新建立的Winows Form的类定义成了一个部分类。我们打开Form1.Designer.cs文件,可以看到,原来Form1的另一部分类是在这个文件中设计的。这个部分类中定义了我们使用的控件、事件委托以及如Dispose方法等。因为这里面的代码都是自动生成的,因此设计成了一个部分类。OK,原来partial如此简单,就到这啦!
1.处理大型项目时,使一个类分布于多个独立文件中可以让多位程序员同时对该类进行处理。
2.使用自动生成的源时,无需重新创建源文件便可将代码添加到类中。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()
...{}
}
以上代码定义了一个类Employee,该类有两个方法DoW
您可能关注的文档
- eta-Post_Manual_1.7.9_CH_curve-plot精选.pdf
- Evolution in invasive plants implications for biological control精选.pdf
- ESM解决方案精选.ppt
- ETO方案简介_中文精选.pdf
- evolution of red organic light-emitting diodes精选.pdf
- evolution of the greater vancouver transportation model精选.doc
- Excel常用函数介绍及常用功能精选.doc
- excel应用技巧精选.ppt
- EXCEL-班级管理2精选.doc
- EXCEL的讲解精选.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 产后骨盆修复全流程指导手册.docx VIP
- HG∕T 2568-2021 工业偏硅酸钠.pdf
- 2025年鄂尔多斯市特岗教师招聘考试真题汇编附答案解析.docx VIP
- 24小时客服电话:010-82311666免费咨询热线:4.doc VIP
- 2020ACLS学员课课前测试中文版试题+答案.pdf VIP
- 髌骨脱位康复护理新进展.pptx VIP
- 急救医学-第四章心悸.ppt VIP
- 高中数学必修第四册第十一章综合测试01含答案解析.pdf VIP
- 2022年高考物理核心高频考点专题22 圆周运动的轻绳、轻杆模型(解析版).pdf VIP
- 马工程-中国古代文学史(第二版)上册第三编魏晋文学全套PPT课件50109.pptx
原创力文档

文档评论(0)