C#学习笔记 -- 分部类、分部方法
1、分部类和分部类型
类的声明可以分割成几个分部类的声明
-
每个分部类的声明都有一些成员的声明
-
类的分部类声明可以在同一文件中也可以在不同文件中
-
每个分部类声明必须被标注为
patial class
partial class MyPartClass //类名称与下部分相同 { member1 delaration member2 delaration } partial class MyPartClass //类名称与上部分相同 { member3 delaration member4 delaration }
如下代码块文件, 可以被分割成两个文件
class MyPartClass { public void OutPut1(int inVal) {...} public void OutPut2(int inVal) {...} }
partial class MyPartClass { public void OutPut1(int inVal) {...} }
partial class MyPartClass { public void OutPut2(int inVal) {...} }
注意
-
类型修饰符partial不是关键字, 所以在其他上下文中, 可以在程序中把它用作标识符
-
但是直接用在关键字class、struct或interface之前, 它表示分部类型
VS为标准Windows程序模板使用了这个特性, 如果从标准模板创建ASP.NET项目 WPF项目, 模板会为每一个Web页面、表单或窗体创建两个类文件.对于ASP.NET后WindowsForms
-
一个文件中的分部类包括由VS生成的代码, 声明类页面上的组件, 你不应该修改这个文件中的部分类, 因为在修改页面组件时, VisualStudio会重新生成他
-
另一个文件包含的分部类可用于实现页面或表单组件的外观和行为
除了分部类, 还可以创建
-
局部结构
-
局部接口
2、分部方法
分部方法是声明在分部类中不同部分的方法, 分部方法不同部分在分部类的不同部分中, 也可以声明在同一个部分中, 分部方法的两个部分都如下
-
定义分部方法声明
-
给出签名和返回类型
-
声明的实现部分只是一个分号
-
-
实现分部方法声明
-
给出签名和返回类型
-
以普通的语句块形式实现
-
注意
-
定义声明和实现声明的签名和返回类型必须匹配, 签名和返回类型都有如下特征
-
返回类型必须是void
-
签名不能包括访问修饰符, 这使得分部方法是隐式私有的
-
参数列表不能包含out参数
-
在定义声明和实现声明中都必须包含上下文关键字partial, 并且直接放在关键字void之前
-
-
可以有定义部分而没有实现部分, 在这种情况下, 编译器把方法的声明以及方法内部任何对方法的调用都移除, 不能只有分部方法的实现部分而没有定义部分
例子
-
-
因为分部方法是隐式私有的, 所以PrintSum不能从类的外部调用, 方法Add是调用PrintSum的公有方法
-
Main创建类的一个对象, 并调用它的公有方法, 公有方法调用PrintSum, 打印出输入参数的和
//分部类, 定义分部方法 partial class Program720 { //定义分部方法, 分部方法返回值必须为空 partial void PrintSum(int x, int y); //使用分部方法 public void Add(int x, int y) { PrintSum(x, y); } } //分部类, 实现分部方法 partial class Program720 { //实现分部方法, 分部方法返回值必须为空 partial void PrintSum(int x, int y) { Console.WriteLine($"分部方法PrintSum实现部分, 结果为:{x + y}"); } }
static void Main(string[] args) { Program720 program720 = new Program720(); program720.Add(1, 2); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律