• C# 分部类和分部方法


    分部类(Partial Class)在C#2.0引入,分部方法(Partial Method)在C#3.0引入,这两个语法特性都具有相同的特性:将类(或)方法的代码分散在多个地方。

    1.分部类的特性和应用

    1.1分部类的定义

    在定义一个类时,加上partial关键字,此类即成为分部类。

    分部类允许将一个类的代码分散于一个以上的源代码文件中。

    Person.cs代码如下

     1 namespace PartialClassDemo1
     2 {
     3     public partial class Person
     4     {
     5         private int age;
     6         Person(int age, string name)
     7         {
     8             this.age = age;
     9             this.name = name;
    10         }
    11         public int Age
    12         {
    13             get
    14             {
    15                 return age;
    16             }
    17             set
    18             {
    19                 if (age < 0 || age > 120)
    20                     Console.WriteLine("年龄非法");
    21                 else
    22                     this.age = Age;
    23             }
    24         }
    25         static void Main(string[] args)
    26         {
    27             Person p = new Person(19,"张三");
    28             Console.WriteLine(p.Age);
    29             Console.ReadKey();
    30         }
    31     }
    32 }

    Person2.cs代码如下

    namespace PartialClassDemo1
    {
        public partial class Person
        {
            private string name;
        }
    }

    使用分部类时,需要注意一下原则:

    (1)所有的需要“合并”的类必须都用partial关键字声明。

    (2)所有的需要“合并”的类必须位于同一个项目中。

    2.为什么要引入分部类

    分部类主要用于隔离来源不同,功能不同或者类型不同的源代码

     另外分布特性还可以用具结构和接口

    2.分布方法的特性和应用

    分布方法允许将方法声明与方法实现代码分布于不同的文件中。与分部类类似,使用partial关键字定义分部方法。

            partial void show(string str);
            partial void show(string str)
            {
                Console.WriteLine(str+"再见");
            }

    分布方法不能具有访问修饰符或virtual、abstract、override new sealed 或者extern修饰符

    partial修饰符只能出现在紧靠class struct interface void前面的位置

     当分部方法没有实现代码时,C#编译器会在编译时删除其调用语句。

    现在我们知道了分部方法有这种特性,但是它有什么用呢?

    使用分部方法允许我们在一个普通方法中插入一个方法占位符,从而为编写可随时添加功能的方法提供支持。

    分部方法不能有多个实现。

  • 相关阅读:
    优化-UITableView性能
    优化-预渲染加速iOS设备的图像显示
    UIWebView
    NSJSONSerialization
    UITableView UITableViewCell NSIndexPath
    NSDictionary NSMutableDictionary
    iOS Delegate NSNotificationCenter
    Php解决跨域名共享session方案整理专题
    memached共享session
    二级域名 session共享
  • 原文地址:https://www.cnblogs.com/malinkang/p/2609168.html
Copyright © 2020-2023  润新知