亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

理解 C# 分部类与分部方法

理解 C# 分部类与分部方法

本文解释 C# 开发者为何使用分部类和分部方法管理大型代码库、高效协作及优化编译。

当多位开发者协作同一个庞大类,或需合并手写代码与 Visual Studio 等工具生成的代码时,C# 的 partial 关键字提供整洁解决方案。


什么是分部类?

分部类允许将单个类的定义拆分到两个或多个源文件。每个文件包含类的一个片段,编译时编译器将它们拼合。partial 关键字必须出现在类的每个部分中。

示例 1 – 拆分简单类

假设项目 HeightWeightInfo 存储人员身高体重。

namespace HeightWeightInfo {
    public partial class Record {
        private int h;
        private int w;
        public Record(int h, int w) {
            this.h = h;
            this.w = w;
        }
    }
}

同一 Record 类在第二个文件继续:

namespace HeightWeightInfo {
    public partial class Record {
        public void PrintRecord() {
            Console.WriteLine("Height:" + h);
            Console.WriteLine("Weight:" + w);
        }
    }
}

使用该类的程序:

namespace HeightWeightInfo {
    class Program {
        static void Main(string[] args) {
            Record myRecord = new Record(10, 15);
            myRecord.PrintRecord();
            Console.ReadLine();
        }
    }
}

编译器将两个 Record 定义合并为包含构造函数和 PrintRecord 方法的单一类。

何时使用分部类

  1. 大型项目多人协作:各成员编辑不同文件避免冲突。
  2. 自动生成代码:IDE 常生成不应手动修改的文件;分部类允许添加自定义逻辑而不改动生成代码。

关键要点


什么是分部方法?

分部方法是特殊方法,可在分部类的一个部分声明,在另一部分可选实现。若省略实现,编译时将同时移除方法声明及其所有调用,可提升性能。

示例 2 – 使用分部方法

在 file1.cs 中,Car 类声明分部方法及其他常规方法。

public partial class Car {
    partial void InitializeCar();
    public void BuildRim() { }
    public void BuildWheels() { }
}

在 file2.cs 中,同一 Car 类提供 InitializeCar 实现并添加另一方法。

public partial class Car {
    public void BuildEngine() { }
    partial void InitializeCar() {
        string str = "Car";
    }
}

分部方法声明由两部分组成:一个文件中的签名,同一或另一文件中的可选实现。

分部方法规则

C语言

  1. ASTM A729 A 级:双重正火回火钢——中碳结构钢标准
  2. ASTM A649 2 级 正火回火钢:中碳结构钢规格与性能
  3. ASTM A288 Class 4 淬火回火中碳钢:规格与性能详解
  4. ASTM A288 Class 5 淬火回火中碳钢:性能与标准全览
  5. C# 类与对象:面向对象编程的基石
  6. 掌握 C# 抽象类与抽象方法:实战指南
  7. 掌握 C# sealed 类与方法:用法、示例与代码安全性能提升
  8. C++类与对象:面向对象编程实战指南
  9. C++ 友元函数与友元类:突破访问控制的利器
  10. C# 继承完全指南:基类、派生类、初始化与多重继承替代方案
  11. C# 多态完全指南:静态多态与动态多态(重载、重写、虚方法)
  12. 精通 Java:理解对象、类与核心 OOP 概念