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关键词,调用时候不影响

  它不只可以用在类,还可以用在接口,结构定义

 

 

 

转载于:https://www.cnblogs.com/rowping/p/3737358.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值