欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-03-31 10:23:40
分部类(partial class)在c#2.0引入,分部方法(partial method)在c#3.0引入,这两个语法特性都具有相同的特性:将类(或)方法的代码分散在多...

分部类(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#编译器会在编译时删除其调用语句。

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

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

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