C# partial修饰符_分部类_分部方法
今天翻了翻书,发现自己还是遗留下不少基础性的东西,老实说,不管一些基础的东西用到不用到都很应该了解,因为基础毕竟学习量不是很大。
一、分部类
什么是部分类呢?简单来说就是将一个类型或方法拆分到两个或多个源文件中,每个源文件只包含类型定义的一部分。
当使用自动生成的源时,无须重新创建源文件便可将代码添加到类中。Visual Studio在创建Window窗体,Web服务包装代码时都是使用此方法。
1、分部类的特征
- 类的定义前要加partial。
- 分部类可以定义在两个不同的.cs文件,也可以定义在同一个.cs文件中。
- 分部类必须同属一个命名空间。
代码示例:

class Program
{
static void Main(string[] args)
{
Person p = new Person(1,"关羽",23);
p.SaySomeThing(); Console.ReadKey();
}
} public partial class Person
{
public Person(int id, string name, int age)
{
Id = id;
Name = name;
Age = age;
} public int Id { get; set; } public string Name get; set; }
} public partial class Person
{
public int Age { get; set; } public void SaySomeThing()
{
Console.WriteLine("我的名字叫" + Name +",我今年" + Age + "岁");
}
}

分部类虽然定义在不同的位置,但是编译器会将它们合并为一,就像它们原本就没有分开过。
二、分部方法
分部方法的声明由两个部分组成:定义和实现。分部方法包含在分部类或分部结构中。分部方法的签名和它的可选实现可以位于同一个或两个不同的分不累中。如果未提供分部方法的实现,则编译器将自动移除方法签名,以及移除所有其他地方代码对该方法的调用。
分部方法的严格限制
- 声明必须以上下文关键字partial开头
- 声明不能有访问修饰符,因此是隐式私有的。
- 不能有返回值。
- 可以有ref参数,不能有out参数。
- 分部方法可以使用static和unsafe修饰符
- 参数名称在实现声明和定义声明中虽然可以不同,但仍然推荐使用一直的方法签名。
示例:

class Program
{
static void Main(string[] args)
{
Person p = new Person();
p.Say(); //输出 你好 Console.ReadKey();
}
} public partial class Person
{
//必须定义在分部类
partial void Say1(); //方法签名 partial void Say1()
{
Console.WriteLine("你好");
} //因为不能具有修饰符,因此是隐式私有的,只能在内部调用
public void Say()
{
Say1();
}
}

C# partial修饰符_分部类_分部方法的更多相关文章
- C#中的分部类和分部方法:partial
这篇文章主要介绍了C#中的分部类和分部方法,讲解了类的拆分和方法的定义的拆分,需要的朋友可以参考下可以将类或结构.接口或方法的定义拆分到两个或多个源文件中.每个源文件包含类型或方法定义的一部分,编译应 ...
- C#中分部类和分部方法的应用
本篇文章介绍了,C#中分部类和分部方法的应用.需要的朋友参考下 分部类(Partial Class)在C#2.0引入,分部方法(Partial Method)在C#3.0引入,这两个语法特性都 ...
- C#综合揭秘——分部类和分部方法
在面向对象的“封装闭合性”开发原则中,一向提倡的是把独立的功能封装在一个类里面的!但从Visual Studio 2005开发,系统提供了一个分部类的开发方式一直受到争议,很多人认为把同一类的功能分布 ...
- 分部类,分部方法 - 修饰符partial
一.分部类 什么是部分类呢?简单来说就是将一个类型或方法拆分到两个或多个源文件中,每个源文件只包含类型定义的一部分. 当使用自动生成的源时,无须重新创建源文件便可将代码添加到类中.Visual Stu ...
- 利用partial关键字声明分部类和分部方法
一.分部类 1.分部类的定义:简单的说,分部类就是把一个类拆分成多个类,每个类文件只包含其中的一部分,类.结构.接口.方法都可以拆分,在定义的时候加上partial修饰符. 注意:分部类必须属于同一命 ...
- c# partial 分部类和分部方法
一.partial 它是一个关键字修饰符.可以将类或结构.接口或方法的定义拆分到两个或更多个源文件中. 每个源文件包含类型或方法定义的一部分,编译应用程序时将把所有部分组合起来.修饰符不可用于委托或枚 ...
- C# partial分部类和分部方法
1.https://www.cnblogs.com/xcsn/p/7533238.html 它是一个关键字修饰符.可以将类或结构.接口或方法的定义拆分到两个或更多个源文件中. 每个源文件包含类型或方法 ...
- C# 分部类与分部方法
一.定义 分部方法是指能够使编码人员跨多个代码文件实现类型的语法.简而言之.它可以让我们在一个文件中构建方法原型,而在另一个文件中实现 使用分部方法和分部类需要使用关键词partial,且紧靠在cla ...
- [C#学习笔记]分部类和分部方法
知识在于积累. 前言 好久没写博客了,因为在看<CLR via C#>的时候,竟然卡在了分部方法这一小节几天没下去.今天重新认真阅读,有些感悟,所以在此记录. 然后. 每天早晨第一句,&l ...
随机推荐
- 网络版shell之网络编程练习篇--telnet服务端
网络版shell之网络编程练习篇--telnet服务端 以前写过一个shell命令解释器,对与shell命令解释器的执行流程有了清晰的认识,这段时间学习网络编程,至于网络编程的细节以及知识点,已经 ...
- jQuery.trim(str)
描述: 去掉字符串起始和结尾的空格. jQuery 代码: $.trim(" hello, how are you? "); 结果: "hello, how are yo ...
- 【转】android cts failed items
原文网址:http://blog.csdn.net/linsa0517/article/details/19031479 Fail的一些修改 1.直接设置问题 estUnknownSourcesO ...
- CString 的一些事
MFC Visual Studio 2008 CString 的 Format 中不能这样存在str.Format(_T("Cool(\%)")); 或者 str.Format( ...
- 【转】ffmpeg中的sws_scale算法性能测试
经常用到ffmpeg中的sws_scale来进行图像缩放和格式转换,该函数可以使用各种不同算法来对图像进行处理.以前一直很懒,懒得测试和甄别应该使用哪种算法,最近的工作时间,很多时候需要等待别人.忙里 ...
- Android硬件抽象层(HAL)概要介绍和学习计划
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6567257 Android的硬件抽象层,简单来 ...
- Android应用程序资源管理器(Asset Manager)的创建过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8791064 在前面一篇文章中,我们分析了And ...
- Tomcat 内存与优化篇
Tomcat 内存与优化一.Tomcat 运行环境介绍 1.Tomcat 本身无法直接在计算机上运行,需要依赖硬件基础上的操作系统和Java虚拟机: 2.Java 程序启动时JVM都会分配一个初始内存 ...
- NET基础课--对象的筛选和排序(NET之美)
1.数据量不大的时候取出数据缓存于服务器,然后排序,筛选等基于缓存进行以提高效率. 排序或筛选的方法是使用集合类型提供的,如List<T>.sort() List<T>.Fi ...
- URI, URL, and URN
URI: uniform resource identifier,统一资源标识符,用来唯一的标识一个资源. URL: uniform resource locator,统一资源定位器,它是一种具体的U ...