码迷,mamicode.com
首页 > 其他好文 > 详细

c#分部类型详解

时间:2014-05-23 12:04:46      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   c   code   java   

一.先看代码来理解

 代码一

 

1 class ClassA
2 {
3       void A(){;}
4       void B(){;}
5 }

 

代码二

bubuko.com,布布扣
1 partial class ClassA
2 {
3       void A(){;}
4 }
5 partial class ClassA
6 {
7       void B(){;}
8 }
bubuko.com,布布扣

代码一和代码二效果是一样的,引用类的成员完全一样,只是声明不不同而已。主要partial在这里是分部类型的关键词

编译过程图解

bubuko.com,布布扣

二.应用场景

  1.嵌套在一个类里面

bubuko.com,布布扣
 1 class Container
 2 {
 3 partial class Nested
 4 {
 5 void Test() { }
 6 }
 7 partial class Nested
 8 {
 9 void Test2() { }
10 }
11 } 
bubuko.com,布布扣

 

  2.分部类型给予不同的特性

 

bubuko.com,布布扣
 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 { } 
bubuko.com,布布扣

 3.继承不同的基类

  

1 partial class Earth : Planet, IRotate { }
2 partial class Earth : IRevolve { } 
3 
4 //等效于
5 class Earth : Planet, IRotate, IRevolve { }

 4.一个类在不同的文件下面定义

  

bubuko.com,布布扣
 1 //文件一下
 2 namespace PC
 3 {
 4     partial class A
 5     {
 6         int num = 0;
 7         void MethodA() { }
 8         partial void MethodC();
 9     }
10 }
bubuko.com,布布扣
bubuko.com,布布扣
1 //文件二下
2 namespace PC
3 {
4     partial class A
5     {
6         void MethodB() { }
7         partial void MethodC() { }
8     }
9 }
bubuko.com,布布扣

 欢迎继续补充

三.总结

   分部类型只是在定义时候,注意用partial关键词,调用时候不影响

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

 

 

 

c#分部类型详解,布布扣,bubuko.com

c#分部类型详解

标签:style   class   blog   c   code   java   

原文地址:http://www.cnblogs.com/rowping/p/3737358.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!