概念:可以将类、构造、接口拆分到两个或多个源文件中。每个源文件包含类定义的一部分,编译应用程序时Visual Studio 会吧所有部分类组合起来。这样的类称为分部类。其应用场合:
当项目比较庞大时,使用分部类可以拆分一个类至几个文件中。这样的处理,可以使得不同的开发人员同时进行开发,避免了效率低下。
Visual Studio 的自动生成代码。如添加一个窗体是,Visual Studio会自动生成许多的代码使用分部类,将这些代码放在单独的文句中,可以使类更简洁,方便操作。
分部类使用partial 关键字定义。如下代码定义了一个分部类。
namespace JieKou
{
class Program
{
static void Main(string[] args)
{
MyClass myClass = new MyClass();
myClass.SayHello();
myClass.SayHi();
}
}
partial class MyClass
{
public void SayHello()
{
Console.WriteLine("Hello World");
}
}
partial class MyClass
{
public void SayHi()
{
Console.WriteLine("Hi");
}
}
}
可以看到分部类的使用与普通类相同,只要在分部类中任意一个部分定义了相应的方法或者属性,都可以使用。用功能代码的存储。这是一种合理的分配方式。同样、接口或结构使用partial关键字来修饰
partial interface IMyInterFace
{
void SayHello();
}
partial interface IMyInterFace
{
void SayHi();
}
class MyClass : IMyInterFace
{
public void SayHello()
{
Console.WriteLine("Hello World");
}
public void SayHi()
{
Console.WriteLine("Hi");
}
}
使用分部类注意事项:
如果一个类前面加了partial关键字,说明该类是分部类,虽然并没有该类的其他部分,单C#依然将其作为分部类来处理。虽然这样写不会报错,但应该避免这种用法,不然会增加.NetFramework的负担,因为.NetFramework会搜索其他部分。
各个部分必须具有相同的可访问性,如public、private等。
分部类的各个部分必须都用partial限定,如果一部分是partial另外一部分不是,就会出现错误。
在两个部分分别使其继承了不同的类和接口,运行时.NetFramework能够很好地将其结合。
Partial关键字的位置必须位于紧接class、interface以及struct的位置。当违反上述规则后,将给出错误提示。