已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C# partial关键字详解partial关键字允许把类、结构或接口放在多个文件中。一般情况下,一个类存储在单个文件中。但有时,多个开发人员需要访问同一个类,或者某种类型的代码生成器生成了一个类的某部分,所以把类放在多个文件中是有益的。partial关键字的用法是:把partial关键字放在class,struct或interface关键字前面。我在下面用几个例子作说明:含有三个类文件:PartialClassPart1.cs,PartialClassPart2.cs,Program.cs,两个部分类分别置于前面两个类文件中,各有一个方法。【PartialClassPart1.cs】using System;namespace PartialClass partial class partialClass public void Method1() Console.WriteLine(PartialClassPart1-partialClass-Method1); 【PartialClassPart2.cs】using System;namespace PartialClass partial class partialClass public void Method2() Console.WriteLine(PartialClassPart2-partialClass-Method2); 代码执行类【Program.cs】using System;namespace PartialClass class Program static void Main(string args) partialClass Pc = new partialClass(); Pc.Method1(); Pc.Method2(); Console.ReadKey(); 结果:可能有人会想Method1和Method2可不可以名字相同?你觉得能相同吗?呵呵!另外一个例子:/BigClassPart1.csCustomAttributepartial class TheBigClass:TheBigBaseClass,IBigClass public void Method1();/BigClassPart2.csAnotherAttributepartial class TheBigClass:IOtherBigClass public void Method2();编译后的结果:CustomAttributeAnotherAttributepartial class TheBigClass:TheBigBaseClass,IBigClass,IOtherBigClass public void Method1(); public void Method2();-注意点,总结:如果声明类使用了下面的关键字,这些关键字将应用于同一个类的所有部分:public,private,protected,internal,abstract,sealed,new ,一般约束。在嵌套的类型中,只要partial关键字位于class关键字的前面,就可以嵌套不分类。在把部分类编译到类型中时,会合并属性,XML注释,接口,泛型类型的参数属性和成员。 partial 关键字的作用是将你的 class 分为多个部分,编译器会将多个部分拼到一起去。 public partial class SampleClass . public void MethodA() . public partial class SampleClass . public void MethodB() . 和 public class SampleClass . public void MethodA() . public void MethodB() . 是等价的。 我猜想这个东西出现的初衷是为了解决掉:“窗体设计器生成的代码”这个令人讨厌的 region。 对我们来说,在团队开发当中这个东西或许也会有点用处。 我观察了一下生成的 IL 代码,使用 partial 生成的代码并没有什么特殊的标记,这说明 partial 纯粹是语言的特性,CLR 完全不知道这么个玩意的存在,这也就意味着不要指望将 partial class 编译为 assembly 或者 module 什么的再与其他的人写的 partial class 去进行拼接:它只能在编译的时候起作用。 为了考验一下编译器,我试着让某一个 partial class 不显式指定父类,发现代码仍然能够正确的通过编译,编译器会按照某一个显式指定了父类的 partial 进行编译,只有在多个 partial 指定了不同父类时才会报错。同样,如果多个 partial 指定了自相矛盾的修饰符的话,编译时也会报错的。 有意思的是,我们还可以写以下这样的代码: public partial class Sample . public partial class SampleSon . public partial class Sample
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合伙投资协议书模板
- 协议书与劳动合同书
- 合股养殖菜牛协议书
- 合作社合同范本模板
- 临大运动营养学教案第10讲 健身运动的膳食营养
- 2025-2030中国液体化工物流无人机巡检与远程监控技术应用报告
- 2026年医用血液检测协议
- 2026年国际青少模拟法庭案例编写合同
- 2026年医院国际合作协议
- 电缆金属护套制造工岗位合规化技术规程
- 2025-2031年中国环卫装备行业市场发展监测及投资策略研究报告
- 电工巡检记录全套表格
- 2025宪法宣传教育
- 急诊科特色服务项目开发计划
- 2025年停车场联盟合作协议范例
- 《国际贸易知识贸易术语》课件
- 放疗健康宣教讲解 医学专业课学习资料
- 建筑与市政工程第三方质量安全巡查实施方案
- 数学在医疗领域中的创新应用
- 安全信息报送管理制度模版(3篇)
- T-GXAS 586-2023 毛发中依托咪酯、依托咪酯酸的测定 液相色谱-串联质谱法
评论
0/150
提交评论