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

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

     

  • 相关阅读:
    cocos2dx的发展的例子2048(加入动画版)
    Hibernate操作Clob数据类型
    json级联城市
    Ubuntu Linux 永山(mount)分
    C++出现计算机术语5
    Cocos2d-x 3.0 红孩儿私人义务教育
    大页(huge pages) 三大系列 ---计算大页配置参数
    EJB_消息驱动发展bean
    HDU5086Revenge of Segment Tree(数论)
    第五章_JSTL
  • 原文地址:https://www.cnblogs.com/rowping/p/3737358.html
Copyright © 2020-2023  润新知