C#中分部类和分部方法的应用

时间:2022-08-16 06:49:05 

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

1.分部类的特性和应用

1.1分部类的定义

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

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

Person.cs代码如下


namespace PartialClassDemo1
 {
     public partial class Person
     {
         private int age;
         Person(int age, string name)
         {
             this.age = age;
             this.name = name;
         }
         public int Age
         {
             get
             {
                 return age;
             }
             set
             {
                 if (age < 0 || age > 120)
                     Console.WriteLine("年龄非法");
                 else
                     this.age = Age;
             }
         }
         static void Main(string[] args)
         {
             Person p = new Person(19,"张三");
             Console.WriteLine(p.Age);
             Console.ReadKey();
         }
     }
 }


Person2.cs代码如下


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


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

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

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

2.为什么要引入分部类

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

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

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

分布方法允许将方法声明与方法实现代码分布于不同的文件中。与分部类类似,使用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#编译器会在编译时删除其调用语句。

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

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

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

标签:分部类,分部方法
0
投稿

猜你喜欢

  • eclipse实现DSA数字签名

    2023-08-24 19:11:37
  • spring中12种@Transactional的失效场景(小结)

    2022-04-26 00:06:40
  • Java实现远程控制技术完整源代码分享

    2022-04-10 20:31:53
  • java 如何实现正确的删除集合中的元素

    2022-08-03 17:44:31
  • Java JDK 动态 代理的使用方法示例

    2023-08-23 08:12:52
  • Spring创建bean的几种方式及使用场景

    2021-06-20 14:16:35
  • java集合Collection常用方法解读

    2023-11-16 18:29:07
  • C#微信公众号与订阅号接口开发示例代码

    2023-07-20 09:11:07
  • android仿iphone主题效果的主菜单

    2023-04-29 03:56:35
  • C# 嵌入dll 的方法

    2022-11-06 08:39:10
  • 带你了解Java数据结构和算法之前缀,中缀和后缀表达式

    2023-03-15 10:22:46
  • 在WPF中合并两个ObservableCollection集合

    2022-11-01 18:42:10
  • Java中字符串String的+和+=及循环操作String原理详解

    2023-05-13 15:10:35
  • .NET创建、删除、复制文件夹及其子文件的实例方法

    2022-12-29 06:32:45
  • Android实现检测手机多点触摸点数

    2021-11-17 00:57:32
  • Java逃逸分析详解及代码示例

    2021-05-29 15:23:15
  • C#通过DataSet读写xml文件的方法

    2021-10-07 01:36:52
  • java实现仿windows 字体设置选项卡实例

    2023-01-02 11:45:42
  • java中Date类和Strng类的灵活转化

    2022-12-09 07:47:24
  • 通过C#实现自动售货机接口

    2023-12-16 00:15:36
  • asp之家 软件编程 m.aspxhome.com