局部

关键字 partial 可以在类,结构或接口的类型定义期间使用,以允许将类型定义拆分为多个文件。这对于在自动生成的代码中合并新功能非常有用。

File1.cs

namespace A
{
    public partial class Test
    {
        public string Var1 {get;set;}
    }
}

File2.cs

namespace A
{
    public partial class Test
    {
        public string Var2 {get;set;}
    }
}

注意: 类可以拆分为任意数量的文件。但是,所有声明必须位于相同的命名空间和相同的程序集下。

也可以使用 partial 关键字声明方法的部分方法。在这种情况下,一个文件将只包含方法定义,另一个文件将包含实现。

部分方法将其签名定义在部分类型的一部分中,并且其实现在该类型的另一部分中定义。部分方法使类设计者能够提供类似于事件处理程序的方法钩子,开发人员可以决定是否实现。如果开发人员不提供实现,则编译器会在编译时删除签名。以下条件适用于部分方法:

  • 部分类型的两个部分中的签名必须匹配。
  • 该方法必须返回 void。
  • 不允许访问修饰符。部分方法是隐式私有的。

- MSDN

File1.cs

namespace A
{
    public partial class Test
    {
        public string Var1 {get;set;}
        public partial Method1(string str);
    }
}

File2.cs

namespace A
{
    public partial class Test
    {
        public string Var2 {get;set;}
        public partial Method1(string str)
        {
            Console.WriteLine(str);
        }
    }
}

注意: 包含 partial 方法的类型也必须声明为 partial。