部分类

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#编程(十九)----------部分类的更多相关文章

  1. Unix环境高级编程(十九)终端I/O

    终端I/O应用很广泛,用于终端.计算机之间的直接连线.调制解调器以及打印机等等.终端I/O有两种不同的工作模式: (1)规范模式输入处理:终端输入以行为单位进行处理,对于每个读要求,终端驱动程序最多返 ...

  2. 学习ASP.NET Core Razor 编程系列十九——分页

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  3. 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 ...

  4. python 教程 第十九章、 图形界面编程

    第十九章. 图形界面编程 import Tkinter top = Tkinter.Tk() hello = Tkinter.Label(top, text='Hello World!') hello ...

  5. [你必须知道的.NET]第二十九回:.NET十年(上)

    发布日期:2009.05.08 作者:Anytao © 2009 Anytao.com ,Anytao原创作品,转贴请注明作者和出处. /// <summary> /// 本文部分内容,已 ...

  6. 学习笔记:CentOS7学习之十九:Linux网络管理技术

    目录 学习笔记:CentOS7学习之十九:Linux网络管理技术 本文用于记录学习体会.心得,兼做笔记使用,方便以后复习总结.内容基本完全参考学神教育教材,图片大多取材自学神教育资料,在此非常感谢MK ...

  7. 无废话ExtJs 入门教程十九[API的使用]

    无废话ExtJs 入门教程十九[API的使用] extjs技术交流,欢迎加群(201926085) 首先解释什么是 API 来自百度百科的官方解释:API(Application Programmin ...

  8. 第十九章——使用资源调控器管理资源(1)——使用SQLServer Management Studio 配置资源调控器

    原文:第十九章--使用资源调控器管理资源(1)--使用SQLServer Management Studio 配置资源调控器 本系列包含: 1. 使用SQLServer Management Stud ...

  9. 第十九章——使用资源调控器管理资源(2)——使用T-SQL配置资源调控器

    原文:第十九章--使用资源调控器管理资源(2)--使用T-SQL配置资源调控器 前言: 在前一章已经演示了如何使用SSMS来配置资源调控器.但是作为DBA,总有需要写脚本的时候,因为它可以重用及扩展. ...

随机推荐

  1. ckeditor:新增时会得到上次编辑的内容

    参考网址:http://blog.sina.com.cn/s/blog_6961ba9b0102wwye.html 第一次新增时没有问题,编辑器里面内容为空,编辑数据时,也是正常,但是第二次点击新增时 ...

  2. (windows下)安装mysql

    一.先从mysql的官网上下载对应版本的mysql zip包(适用于windows下的) 二.解压zip包放到自定义的文件夹下(我放的是e盘,路径为E:\mysql-5.6.40-winx64) 三. ...

  3. 20175225《java程序设计》第五周学习总结

    20175225 2018-2019-2 <Java程序设计>第5周学习总结 教材学习内容总结 1.接口体中包含常量的声明(没有变量)和抽象方法两部分.接口体中只有抽象方法,没有普通的方法 ...

  4. vmware提示:此虚拟机似乎正在使用中,无法取得所有权的解决办法

    在虚拟机运行时,一次非正常关机.导致虚拟机出现以下错误: 此虚拟机似乎正在使用中. 如果此虚拟机已在使用中,请按“取消”按钮,以免损坏它.如果此虚拟机未使用,请按“取得所有权(&T)”按钮以获 ...

  5. Hanoi Factorys

    题面 思路 这道题看似难的一匹,实际上也难的一批还好,甚至n^2 DP都有50分呢. 原谅我一失手成千古恨. 50分思路 就是sort后根据条件DP if (LIS[i].b>LIS[j].a) ...

  6. 《python源码剖析》,看看

    这书高级了,有点超出理解能力. 但走出舒适区,不是大家都在说的么?:) 看完了些章节,还是很有收获的, 截图存照.

  7. Java 构造 BSON 数据类型

    Java 构造 BSON 数据类型 整数/符浮点数 Java BSON 构造整数/符浮点数类型 // {a:123, b:3.14} BSONObject obj = new BasicBSONObj ...

  8. 【LOJ】#2071. 「JSOI2016」最佳团体

    题解 01分数规划,二分加树背包-- 代码 #include <bits/stdc++.h> #define enter putchar('\n') #define space putch ...

  9. 【LeetCode】170. Two Sum III – Data structure design

    Difficulty:easy  More:[目录]LeetCode Java实现 Description Design and implement a TwoSum class. It should ...

  10. Python3 决策树ID3算法实现

    # -*- coding: utf-8 -*- """ Created on Wed Jan 24 19:01:40 2018 @author: markli 采用信息增 ...