当前位置: 首页 > 编程语言 > C# > 正文

C#3.0的分部方法

时间:2007-10-04

C#分部方法的语法

在看C#语言的What's New时,突然发现新特性列表的最后,多出了一个“Partial Method Definitions”,但并不像其他新特性一样有超链接链接到其说明。上网搜索了一下,关于分部类型的信息非常少。尤其是中文信息,英文技术文章中,倒是有两篇不错的:http://blogs.msdn.com/wesdyer/archive/2007/05/23/in-case-you-haven-t-heard.aspx和http://community.bartdesmet.net/blogs/bart/archive/2007/07/28/c-3-0-partial -methods-what-why-and-how.aspx。

又仔细看了一下MSDN Library for Visual Studio 2008 Beta 2,终于对这个语言特性有所了解,在这里介绍一下,希望对大家有所帮助。

分部方法的定义和分部类型类似,只需在方法定义前添加partial关键字。但分部方法只能拆分成两个部分——一部分是定义声明(Definition Declaration),另一部分是实现声明(Implement Declaration)。其中定义声明看上去和抽象方法类似:

partial class CA
{
// ……
private void partial M(); // 定义声明|
而实现声明看上去和普通方法类似:
private void partial M() // 实现声明
{
// 方法体
}

在调用分部方法时,和调用其他方法一样:

CA a = new CA();
a.M();

只是,如果只有定义声明而没有编写实现声明,则编译器不会发射(Emit)该方法和调用该方法的语句的元数据与IL代码。换言之,如果没有编写实现声明,则编译得到的程序集中,CA类型里并没有M这个方法。

使用分部方法的注意事项

分部方法的语法非常简单,但有一些事项要注意。