首页 > 代码库 > c#分部类型详解
c#分部类型详解
一.先看代码来理解
代码一
1 class ClassA 2 { 3 void A(){;} 4 void B(){;} 5 }
代码二
1 partial class ClassA 2 { 3 void A(){;} 4 } 5 partial class ClassA 6 { 7 void B(){;} 8 }
代码一和代码二效果是一样的,引用类的成员完全一样,只是声明不不同而已。主要partial在这里是分部类型的关键词
编译过程图解
二.应用场景
1.嵌套在一个类里面
1 class Container 2 { 3 partial class Nested 4 { 5 void Test() { } 6 } 7 partial class Nested 8 { 9 void Test2() { } 10 } 11 }
2.分部类型给予不同的特性
1 [System.SerializableAttribute] 2 partial class Moon { } 3 4 [System.ObsoleteAttribute] 5 partial class Moon { } 6 7 8 //等效于下面 9 10 [System.SerializableAttribute] 11 [System.ObsoleteAttribute] 12 class Moon { }
3.继承不同的基类
1 partial class Earth : Planet, IRotate { } 2 partial class Earth : IRevolve { } 3 4 //等效于 5 class Earth : Planet, IRotate, IRevolve { }
4.一个类在不同的文件下面定义
1 //文件一下 2 namespace PC 3 { 4 partial class A 5 { 6 int num = 0; 7 void MethodA() { } 8 partial void MethodC(); 9 } 10 }
1 //文件二下 2 namespace PC 3 { 4 partial class A 5 { 6 void MethodB() { } 7 partial void MethodC() { } 8 } 9 }
欢迎继续补充
三.总结
分部类型只是在定义时候,注意用partial关键词,调用时候不影响
它不只可以用在类,还可以用在接口,结构定义
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。