C# partial 部分类使用简单举例说明
partial 关键字允许把类、结构、方法或者接口放在多个文件中。一般情况下,某种类型的代码生成器生成了一个类的某部分,所以把这类放在多个文件中是有益的。假定要给类添加一些从工具中自动生成的内容。如果重新运行该工具,前面所做的修改就会丢失。partial 关键字有助于把类分开放在两个文件中,而对不由代码生成器定义的文件进行修改。
partial 关键字的用法是:把Partial放在class、struct、或者inteface关键字前面。在下面的举例中 SampleClass类驻留在两个不同的源文件 SampleClassAutogenerated.cs 和 SampleClass.cs中。
//SampleClassAtuogenerated.cs
partial class SampleClass
{public void MethodOne(){}
}//SampleClass.cs
partial class SampleClass
{public void MethodTwo(){}
}
编译包含这两个源文件项目时,会创建一个SampleClass类,它有两个方法MethodOne() 和 MethodTwo()。
如果声明类时 使用了下面的关键字,则这些关键字就必须应用于同一个类型的的所有部分。
1、public
2、private
3、protected
4、internal
5、abstract
6、sealed
7、new
8、一般约束
在嵌套的类型中,只要partial关键字位于class关键字的前面,就可以嵌套部分类。在把部分类编译到类型中时,属性,XML注释,接口,泛型类型的参数属性和成员会合并。有如下两个源文件:
//SampleClassAutogenerated.cs
[CustomAttribute]
partial class SampleClass:SampleBaseClass,IsampleClass
{public void MethodOne(){}
}//SampleClass.cs
[AnotherAttribute]
partial class SampleClass:IOtherSampleClass
{public void MethodTwo(){}
}
编译后,等价的源文件变成:
[CustomAttribute]
[AnotherAttribute]
partial class SampleClass:SampleBaseClass,ISampleClass,IOtherSampleClass
{public void MethodOne(){}public void MethodTwo(){}
}
注意:尽管partial 关键字很容易创建跨多个文件的巨大的类,且不同的开发人员处理同一个类的不同文件,但是关键字并不用于这个目的。在这种情况下,最好把大类拆分成几个小类,一个类只用于一个目的。
部分类可以包含部分方法。如果生成的代码应该调用可能不存在的方法,这就是非常有用的。扩展部分类的程序员可以决定创建部分方法的自定义实现代码,或者什么也不做。下面的代码片段包含一个部分类,其方法MethodOne调用APartialMethod方法。APartialMethod方法用partial关键字声明:因此不需要任何实现代码。如果没有实现代码,编译器将删除这个方法调用:
//SampleClassAtuogenerated.cs
partial class SampleClass
{public void MethodOne(){APartiaMethod();}public partial void APartialMethod();
}
部分方法在实现可以放在部分类的任何其他地方,如下面的代码片段所示。有了这个方法,编译器就在MethodOne内创建代码,调用这里声明的APartialMethod:
//SampleClass.cs
partial class SampleClass : IOtherSampleClass
{public void APartilMethod(){//implementation of APartialMethod}
}
部分方法必须是void类型,否则编译器在没有实现了代码的情况下无法删除调用。
C# partial 部分类使用简单举例说明相关推荐
- WinForm中Partial部分类的使用
文章目录 1 WinForm中Partial部分类的使用 1.1 WinForm中Partial部分类的简要介绍 1 WinForm中Partial部分类的使用 1.1 WinForm中Partial ...
- partial部分类
<> using System; using System.Collections.Generic; using System.Linq; using System.Text;namesp ...
- (13)C#传智:访问修饰符,简单工厂模式,序列化与反序列化,部分类,密封类,接口(第13天)
内容超级多,慢慢来... 深入BinaryFormatter 一.访问修饰符 public: 公共的,公开的 private:私有的,只能在当前类的内部访问 protected:受保持 ...
- Partial Class部分类
Partial Class ,部分类 或者分布类.顾名思义,就是将一个类分成多个部分.比如说:一个类中有3个方法,在VS 2005将该类中3个方法分别存放在3个不同的.cs文件中. 这样做的好处: 1 ...
- Proguard 部分类不混淆的技巧
Proguard 部分类不混淆的技巧 最近比较忙,博客和 codeKK 都两个月没怎么更新了.赶在月末分享个小技巧. 一.场景 两年前在 Proguard 语法及常用 proguard.cfg 代码 ...
- java 部分类_为什么微软部分类和Java不?
微软成功的秘密(不再是秘密了)是GUI(图形用户界面). 如果你是像我这样的老家伙,你会记得直到80年代的操作系统都是基于DOS的,有那些黑色的窗口和残忍的命令,如dir, edit, mkdir,等 ...
- Intellij IDEA设置忽略部分类编译错误
有些时候我们的项目中有些错误,但这些错误并不影响项目的整体运行(或许是没有使用到),默认情况下idea是无法通过编译的,因此也就无法部署运行,要达到正确运行项目的目的需要作一些设置才行. 设置Inte ...
- C#编程(十九)----------部分类
部分类 C#中使用关键字partial把类,结构或结构放在多个文件中.一般情况下,一个类全部驻留在单个文件中.但有时候,多个开发人员需要访问同一个类,或者某种类型的代码生成器生成了一个类的某部分,所以 ...
- C#部分类与部分方法
部分类也可以定义部分方法.部分方法在部分类中定义,但没有方法体,在另一个部分类中执行.在这两个部分类中,都要使用partial关键字. public partial class MyClass { p ...
最新文章
- 最长公共子序列(JAVA实现)
- [学习笔记] 乱世之神杀疯了 —— K-D tree
- EnvironmentError: mysql_config not found
- openstack中resize更改虚拟机内存、cpu大小后虚拟机状态显示VERIFY_RESIZE
- 【Python爬虫】网络爬虫的“盗亦有道”
- 云计算之路-阿里云上:4000IOPS的RDS+16核CPU的负载均衡
- [biztalk笔记]-1.Hello World!
- linux 进程内存 limit,Linux 中的Soft limit 和Hard limit
- pythonsuper多重继承_解决python super()调用多重继承函数的问题
- CodeJock 实现MFC换肤
- Redis项目应用场景与实例汇总
- 用python批量下载modis数据的速度怎么样_MODIS数据下载与处理-pymodis的使用(持续更新...)...
- 我的海淀驾校考驾照之路
- 计算机文化基础感想,提高《计算机文化基础》教学效果地几点心得.doc
- mysql proxy maxscale_通过Maxscale代理,实现MySQL读写分离
- xp系统和服务器同步时间出错,xp电脑时间同步出错该怎么解决?电脑时间同步错误解决方法...
- Ai智能对话页面html,js人工智能对话框 - osc_q50is30g的个人空间 - OSCHINA - 中文开源技术交流社区...
- 不知不觉自己的C盘越来越大了?你可能需要看一看这个
- Android 加固应用
- IntelliJ IDEA File Header