分部类(partial)

版权声明:此文章转载自_infocool

原文链接:http://www.infocool.net/kb/CSharp/201610/207218.html

如需转载请联系听云College团队成员小尹 邮箱:yinhy#tingyun.com

一般来说,一个类、结构或接口位于一个源文件中,但某些情况,比如大型项目、特殊部署时,可能需要把一个类、结构或接口放在几个文件中来处理。等到编译时,自动把它们合起来,这就得应用 C# 分部类了。

C# 分部类的关键字修饰符是 partial。

public partial class Employee
{
    public void DoWork()
    {
    }
}
public partial class Employee
{
    public void GoToLunch()
    {
    }
}

上述 Employee 编译后拥有两个方法:DoWork() 和 GoToLunch()。

分部类的各部分都必须指定修饰符 partial。

同一分部类的各部分必须有相同的可访问性,如 public、private 等。

partial 必须紧靠 class、struct 或 interface 之前。

同一分部类的各部分必须在同一程序集或同一模块中(.exe 或 .dll 文件)。

局部类型上的修饰符:

(1) 一个类型的各个部分上的访问修饰符必须维持一致性。

(2) 如果一个类型有一个部分使用了abstract修饰符,那么整个类都将被视为抽象类。

(3) 如果一个类型有一个部分使用了 sealed 修饰符,那么整个类都将被视为密封类。

(4) 一个类的各个部分不能使用相互矛盾的修饰符,比如不能在一个部分上使用abstract,又在另一个部分上使用sealed。

局部类型的基类和接口:

(1) 一个类型的各个部分上指定的基类必须一致。某个部分可以不指定基类,但如果指定,则必须相同。

(2) 局部类型上的接口具有“累加”效应。

partial class Class2: Iinterface1, Iinterface2 {}
partial class Class2: Iinterface3 {}
partial class Class2: Iinterface2 {}

相当于

class Class2: Iinterface1, Iinterface2, Iinterface3 {}


想阅读更多技术文章,请访问听云技术博客,访问听云官方网站感受更多应用性能优化魔力。

关于作者

coco秋洁

我爱学习,学习使我快乐

我要评论

评论请先登录,或注册