部分类
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();
}
}