C#编程(十九)----------部分类
部分类
C#中使用关键字partial把类,结构或结构放在多个文件中.一般情况下,一个类全部驻留在单个文件中.但有时候,多个开发人员需要访问同一个类,或者某种类型的代码生成器生成了一个类的某部分,所以把类放在多个文件中是有益的.
用法: 把partial关键字放在class,struct或interface关键字的前面.在下面的例子中,TheBigClass类驻留在两个不同的额源文件BigClassPart1.cs和BigClassPart2.cs中.
//BigClassPart1.cs中的内容
partial class TheBigClass
{
public void MethodOne()
{}
}
//BigClassPart2.cs中的内容
partial class TheBigClass
{
public void Methodtwo()
{}
}
编译包含这两个源文件的项目时,会创建一个TheBigClass类,有两个方法.如果声明类的同时使用了下面的关键字,这些关键字就必须应用于同一个类的所有部分:
public
private
protected
internal
abstract
sealed
new
如果其中一个类为抽象类,那合并后整个类都将被视为抽象类,其中一个类为密封类,那合并后整个类都将视为密封类。例如:
public partial class Person
{
public void Fun1()
{}
}
public partial class Person
{
public void Fun2()
{}
}
部分类的应用,可以在一个文件中声明部分类的属性,一个文件声明字段,一个文件声明方法.
案例:
using System ;
interface ImyInterface1
{
void dosomething();
}
interface ImyInterface2
{
void dosomethingelse();
}
#region 这两个类等同于下一个类
public partial class myClass:ImyInterface1
{
public void dosomething()
{
Console.WriteLine ("接口1的方法");
}
}
public partial class myClass:ImyInterface2
{
public void dosomethingelse()
{
Console.WriteLine ("接口2的方法");
}
}
#endregion
#region 等同于上面两个类
//public class myClass:ImyInterface1,ImyInterface2
//{
// public void dosomething()
// {
// Console.WriteLine ("接口1的方法");
// }
// public void dosomethingelse()
// {
// Console.WriteLine ("接口2的方法");
// }
//}
#endregion
class Test
{
static void Main()
{
myClass a=new myClass ();
a.dosomething ();
a.dosomethingelse();
}
}
C#编程(十九)----------部分类的更多相关文章
- Unix环境高级编程(十九)终端I/O
终端I/O应用很广泛,用于终端.计算机之间的直接连线.调制解调器以及打印机等等.终端I/O有两种不同的工作模式: (1)规范模式输入处理:终端输入以行为单位进行处理,对于每个读要求,终端驱动程序最多返 ...
- 学习ASP.NET Core Razor 编程系列十九——分页
学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...
- centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课
centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/ind ...
- python 教程 第十九章、 图形界面编程
第十九章. 图形界面编程 import Tkinter top = Tkinter.Tk() hello = Tkinter.Label(top, text='Hello World!') hello ...
- [你必须知道的.NET]第二十九回:.NET十年(上)
发布日期:2009.05.08 作者:Anytao © 2009 Anytao.com ,Anytao原创作品,转贴请注明作者和出处. /// <summary> /// 本文部分内容,已 ...
- 学习笔记:CentOS7学习之十九:Linux网络管理技术
目录 学习笔记:CentOS7学习之十九:Linux网络管理技术 本文用于记录学习体会.心得,兼做笔记使用,方便以后复习总结.内容基本完全参考学神教育教材,图片大多取材自学神教育资料,在此非常感谢MK ...
- 无废话ExtJs 入门教程十九[API的使用]
无废话ExtJs 入门教程十九[API的使用] extjs技术交流,欢迎加群(201926085) 首先解释什么是 API 来自百度百科的官方解释:API(Application Programmin ...
- 第十九章——使用资源调控器管理资源(1)——使用SQLServer Management Studio 配置资源调控器
原文:第十九章--使用资源调控器管理资源(1)--使用SQLServer Management Studio 配置资源调控器 本系列包含: 1. 使用SQLServer Management Stud ...
- 第十九章——使用资源调控器管理资源(2)——使用T-SQL配置资源调控器
原文:第十九章--使用资源调控器管理资源(2)--使用T-SQL配置资源调控器 前言: 在前一章已经演示了如何使用SSMS来配置资源调控器.但是作为DBA,总有需要写脚本的时候,因为它可以重用及扩展. ...
随机推荐
- poj2049
优先队列广搜,有人说用SPFA,不知道怎么做的 #include <cstdio> #include <queue> #include <cmath> #inclu ...
- poj1679
题意:给定一个无向连通图,问该图的最小生成树是否唯一. 分析:有一个定理,如果该图存在次小生成树(与原最小生成树不同,但长度小于等于原最小生成树),则一定可以通过从原最小生成树中去掉一个边并再入一个边 ...
- Python_oldboy_自动化运维之路_面向对象(十)
面向对象编程 OOP编程是利用“类”和“对象”来创建各种模型来实现对真实世界的描述,使用面向对象编程的原因一方面是因为它可以使程序的维护和扩展变得更简单,并且可以大大提高程序开发效率 ,另外,基于面向 ...
- SURF 特征匹配
参考:http://www.cnblogs.com/ronny/p/4045979.html,博主对源码进行了分析,不过很多没看明白. 分为几个部分.积分图:借助积分图像,图像与高斯二阶微分模板的滤波 ...
- **如何让CI框架支持service层
http://www.bitscn.com/pdb/php/201411/404708.html 大家知道CodeIgniter框架式MVC分层的,通常大家把业务逻辑写到Controller中,而Mo ...
- C语言——第零次作业
A:你对网络专业或计算机专业了解是怎样? 据我所知计算机专业未来前景不错,不仅就业路子广,毕业工资高,而且在全世界都很吃香.但是,计算机专业是一个非常难学的专业,尽管人们追趋逐耆也没有填补计算机高端人 ...
- 【redis】3.Spring 集成注解 redis 项目配置使用
spring-data-redis 项目,配合 spring 特性并集成 Jedis 的一些命令和方法. 配置redis继承到spring管理项目,使用注解实现redis缓存功能. 参考:http: ...
- PHP并发操作下的加锁
最近做后台统计的工具,统计肯定是一个需要运算好久的数据 容许一个用户在一个时间内进行操作,这个时候就需要用到锁了,将这个操作过程锁起来.在用了cache的时候,cache失效可能导致瞬间的多数并发请求 ...
- CSS------li中的宽和高无法修改问题
如图: 代码:(需要将display属性值设置为inline-block) <ul style="margin-top:50px"> <li style=&quo ...
- 恢复spark挂掉的节点
背景: 某个Worker节点挂掉了,我们需要将Worker进行启动恢复,同时可以恢复streaming中的executor 解决办法: 其实很简单,去worker节点中执行sbin/start-sla ...