zoukankan      html  css  js  c++  java
  • C#基础—不完整类型(局部类型)

     1.为何要引入Partial Type

       通常,我们在一个.cs文件中维护一个类,这也是一种一般约定,也算一个良好的编程风格,但是有些时候,这个类或类型非常庞大,这对可读性、维护性来说成了一种约定的限制。

       当我们接触过一些 ORM 框架的自动生成代码映射的功能时,会发现,当我们使用工具生成了一些基本机构的代码时,很多类都是 partial 类,这是因为当我们在自动代码生成的基础上修改一些自定义的东西后,当再次auto-code时,自定义的代码就被覆盖了,当然我们通常也可以在框架提供的模板中做一些自定义的模板以实现我们的要求,但是如果自己维护的话有时会更加方便。

        除了以上2种场景,还有一些情况下,当我们团队开发需要较明确的分工时,一个类可能由2个以上的人员来完成,这时候写局部类也是一个很好的选择。

    2. Partial Type 的定义和应遵循的约定

        不完整类型(Partial Type) : 可以让类、结构、接口分为多个不同的部分存储在不同的源文件中。(不支持委托、枚举)

       不完整类型使用约定:

           (1)、不完整类型的所有部分必须同时在同一命名空间下编译,在编译时各个部分被融合到一起。

           (2)、不完整类型的所有部分的修饰符必须保持一致性,不能相互矛盾。

           (3)、不完整类型的各个部分实现的接口、Attribute 具有累加效应。

         

     1 public partial class Program
     2 {
     3     public void BaseFunc()
     4     {
     5         Console.WriteLine("工具生成的基本结构方法");
     6     }
     7 
     8     static void Main(string[] args)
     9     { 
    11        //编译时,和一个类2个方法的效果是一样的
    13        Console.Read();
    14      }
    15 }
    16 
    17 public partial class ProgramPartial
    18 {
    19     public void ExtendFunc()
    20     {
    21         Console.WriteLine("写一些自定义的方法");
    22     }
    23 }
           
  • 相关阅读:
    NC 工具的使用教程
    centos7&redhat 之 firewalld 详细介绍配置
    rabbitmq&&erlang 安装
    centos7 rabbitmq 安装
    Centos7 Erlang Solutions 安装
    CentOS7 LVM添加硬盘及扩容
    Linux服务器上监控网络带宽的18个常用命令
    在PowerDesigner中自动生成sqlserver字段备注
    JS 验证URL
    GitHub上整理的一些工具【转载】
  • 原文地址:https://www.cnblogs.com/ydchw/p/3734506.html
Copyright © 2011-2022 走看看