码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2015-01-14 19:35:03      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:

本篇文章介绍了,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代码如下

1 namespace PartialClassDemo1
2 {
3     public partial class Person
4     {
5         private string name;
6     }
7 }

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

 

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

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

2.为什么要引入分部类

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

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

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

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

1        partial void show(string str);
2         partial void show(string str)
3         {
4             Console.WriteLine(str+"再见");
5         }

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

 

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

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

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

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

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

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

标签:

原文地址:http://www.cnblogs.com/0515offer/p/4224526.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!