C# 局部类型 Partial
Partial是局部类型的意思。允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。C#编译器在编译的时候仍会将各个部分的局部类型合并成一个完整的类
局部类型适用情况:
(1) 类型特别大,不宜放在一个文件中实现
(2) 一个类型中的一部分代码为自动化工具生成的代码,不宜与我们自己编写的代码混合在一起
(3) 需要多人合作编写一个类
局部类型的限制:
(1) 局部类型只适用于类、接口、结构,不支持委托和枚举
(2) 同一个类型的各个部分必须都有修饰符 partial
(3) 使用局部类型时,一个类型的各个部分必须位于相同的命名空间中
(4) 一个类型的各个部分必须被同时编译
局部类型注意点:
(1) 关键字partial是一个上下文关键字,只有和 class、struct、interface 放在一起时才有关键字的含义。因此partial的引入不会影响现有代码中名称为partial的变量
(2) 局部类型的各个部分一般是分开放在几个不同的.cs文件中,但C#编译器允许我们将他们放在同一文件中
局部类型上的修饰符:
(1) 一个类型的各个部分上的访问修饰符必须维持一致性
(2) 如果一个类型有一个部分使用了abstract修饰符,那么整个类都将被视为抽象类
(3) 如果一个类型有一个部分使用了 sealed 修饰符,那么整个类都将被视为密封类
(4) 一个类的各个部分不能使用相互矛盾的修饰符,比如不能在一个部分上使用abstract,又在另一个部分上使用sealed
局部类型的基类和接口:
(1) 一个类型的各个部分上指定的基类必须一致。某个部分可以不指定基类,但如果指定,则必须相同
(2) 局部类型上的接口具有“累加”效应
partial class Class2: Iinterface1, Iinterface2 {}
partial class Class2: Iinterface3 {}
partial class Class2: Iinterface2 {}
												
											C# 局部类型 Partial的更多相关文章
- C#基础--局部类型Partial
		
局部类型 原本来在同一个命名(namespace)空间下 是不允许相同的类(class)名存在的 但是partial关键字可以允许在同一个namespace下有想通过的类名存在 写法 下面的两个不 ...
 - C#局部类型partial在定义实体类Model中的应用
		
以前一直用继承类的方法,原来还可以这样 //例如:定义一个Person的实体类,用户ID(PersonId),姓名(Name),性别(Sex),年龄(Age),地址(Address),联系方式(Tel ...
 - C# partial 局部类型
		
关键字partial是一个上下文关键字,只有和 class.struct.interface 放在一起时才有关键字的含义.因此partial的引入不会影响现有代码中名称为partial的变量.局部类型 ...
 - 关于C#中Partial局部类型关键字的使用
		
虽然之前在做Winform开发时候,经常遇到Partial关键字,但是最近在代码中看到使用Partial将同名类文件写在多个源文件中,因此想要记录下Partial的详细使用. Partial type ...
 - C++ Templates (2.3 类模板的局部使用 Partial Usage of Class Templates)
		
返回完整目录 目录 2.3 类模板的局部使用 Partial Usage of Class Templates 2.3.1 Concepts 2.3 类模板的局部使用 Partial Usage of ...
 - Struts2之自定义局部类型转换器、全局类型转换器
		
Struts2自定义类型转换器分为局部类型转换器和全局类型转换器 (1)局部类型转换器 如果页面传来一个参数reg.action?birthday=2010-11-12到后台action,然后属性用 ...
 - Struts2第五篇【类型转换器、全局、局部类型转换器】
		
前言 上篇博文已经讲解了,Struts2为我们实现了数据自动封装-由上篇的例子我们可以看出,表单提交过去的数据全都是String类型的,但是经过Struts自动封装,就改成是JavaBean对应成员变 ...
 - Partial(部分方法,局部方法),virtual(虚方法),abstract(抽象方法)
		
Partial 部分方法顾明思议是方法的一部分,不完整的,在ide编译时候,会将所有部分方法加载到一起统一编译,如果分部方法没有被实现,编译器就不会.对他们进行编译. 局部类型的限制 (1) 局部类型 ...
 - C#简单问题,不简单的原理:不能局部定义自定义类型(不含匿名类型)
		
今天在进行代码测试时发现,尝试在一个方法中定义一个委托,注意是定义一个委托,而不是声明一个委托变量,在编写的时候没有报错,VS也能智能提示,但在编译时却报语法不完整,缺少方括号,但实际查询并没有缺少, ...
 
随机推荐
- centos7关于防火墙的操作
			
1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disab ...
 - asp.net 、C#实现微信企业号OAuth2认证
			
以微信企业号作为入口的应用,几乎都会遇到需要应用系统中个人信息和微信用户关联问题.从而进行其他业务处理.目前所做项目采取在企业号通讯录添加自定义字段存入应用系统用户信息表中唯一标识UserGuid进行 ...
 - Csharp:WebClient and WebRequest use http download file
			
//Csharp:WebClient and WebRequest use http download file //20140318 塗聚文收錄 string filePath = "20 ...
 - 51Nod1601 完全图的最小生成树计数
			
传送门 我居然忘写题解啦!(记忆废) 不管怎么说,这题还算是一道好题啊……你觉得敦爷出的题会有水题么 …… 这题比较容易把人误导到Boruvka算法之类的东西上去(我们机房去刚D题的人一开始大多也被误 ...
 - endwith与startwith字符串方法匹配重写
			
endwith与startwith字符串方法匹配重写 在js读取文件信息并判断文件的格式类型时出现问题,并找到解决方案,写下来与大家分享,共勉. ---DanlV 描述 本人在上传MP3格式文件时,需 ...
 - Linux基础之-网络配置,主机名设置,ssh登陆,scp传输
			
一. 网络配置修改 1.临时修改(ip,dns,netmask,gateway) 临时修改网络配置,只要没有涉及到修改配置文件的,在network服务重启后,所有设置失效 2.永久修改(ip,dns, ...
 - 转 linux screen 命令详解
			
一.背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份.ftp 传输等等.通常情况下我们都是为每一个这样的任务开一个远 ...
 - .NET开源工作流RoadFlow-流程运行-管理员干预
			
在流程运行过程中管理员可以干预流程实例的走向,如管理加强制退回,指派和删除流程实例操作.在 流程管理-->实例管理 中查找到相应的流程实例,点击管理按钮即可管理该流程实例: 点击指派按钮,选择要 ...
 - opencv 从摄像头中读取视频并保存(c++版)
			
原文:http://blog.csdn.net/zhongshijunacm/article/details/68947890 OpenCV中的视频操作函数如下表所列: VideoCapture Vi ...
 - golang rest api example
			
package main import ( "net/http" "github.com/gin-gonic/gin" "github.com/jin ...