partial 关键字 C#

Quibbler 1月前 133

partial 关键字


        在 C# 中,partial 关键字用于将一个类、结构或接口的定义拆分成多个部分。这些部分可以分布在不同的源文件中,但它们在编译时会被合并为一个完整的类型。



1、partial作用

        partial 在以下几种场景中特别有用:


1.1、代码生成工具

        代码生成工具(如设计器)通常会生成部分代码,而开发者可以在另一个部分中添加自定义逻辑。这样,即使生成的代码被更新,开发者添加的代码也不会丢失。


1.2、分层开发

在大型项目中,将一个类的定义拆分成多个文件可以提高代码的可维护性和可读性。不同的开发人员可以独立工作,而不会相互干扰。


1.3、扩展类的功能

可以在不修改原始类定义的情况下,通过添加新的部分来扩展类的功能。



2、语法

        partial 类的语法如下:

    public partial class MyClass{
        // 第一部分的成员
    }
    
    public partial class MyClass{
        // 第二部分的成员
    }


2.1.示例

        假设有一个名为 Person 的类,将它的属性和方法分别放在两个不同的文件中。

        文件1:PersonProperties.cs

    public partial class Person{
    public string Name { get; set; }
    public int Age { get; set; }}

        文件2:PersonMethods.cs

    public partial class Person{
        public void SayHello()
            {
                Console.WriteLine($"Hello, my name is {Name} and I am {Age} years old.");
            }
    }


2.2、使用

        在其他文件中,可以像使用普通类一样使用 Person 类:

    class Program{
        static void Main()
        {
            Person person = new Person
                {
                    Name = "Alice",
                    Age = 30
                };
            person.SayHello(); // 输出: Hello, my name is Alice and I am 30 years old.
    }}


2.3、注意事项

        所有部分必须在同一程序集中:partial的所有部分必须在同一个程序集中,但可以分布在不同的文件中。

        访问修饰符必须一致:所有部分的访问修饰符(如 publicinternal 等)必须一致。

        成员名称不能重复:在所有部分中,成员(如方法、属性、字段等)的名称不能重复。



3、常见用途


3.1. 代码生成工具

        例如,Visual Studio 的设计器会生成部分代码,而开发者可以在另一个部分中添加自定义逻辑:

    public partial class Form1 : Form{
    public Form1()
    {
        InitializeComponent();
    }}// 自定义代码public partial class Form1{
    private void MyCustomMethod()
    {
        // 自定义逻辑
    }}


3.2. 分层开发

        在大型项目中,将一个类的定义拆分成多个文件可以提高代码的可维护性和可读性:

    // 文件1:
    Person.cspublic partial class Person{
    public string Name { get; set; }
    public int Age { get; set; }}
    
    // 文件2:
    PersonBehavior.cspublic partial class Person{
    public void SayHello()
    {
        Console.WriteLine($"Hello, my name is {Name} and I am {Age} years old.");
    }}


        partial是 C# 中一个非常有用的特性,它允许将一个类的定义拆分成多个部分,分布在不同的文件中。这在代码生成工具、分层开发和扩展类的功能时特别有用。通过合理使用partial,可以提高代码的可维护性和可读性。


不忘初心的阿甘
最新回复 (0)
    • 安卓笔记本
      2
        登录 注册 QQ
返回
仅供学习交流,切勿用于商业用途。如有错误欢迎指出:fluent0418@gmail.com