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

本篇文章介绍了,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#编译器会在编译时删除其调用语句。

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

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

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

时间: 2024-07-31 03:50:44

C#中分部类和分部方法的应用的相关文章

c# partial 分部类和分部方法

一.partial 它是一个关键字修饰符.可以将类或结构.接口或方法的定义拆分到两个或更多个源文件中. 每个源文件包含类型或方法定义的一部分,编译应用程序时将把所有部分组合起来.修饰符不可用于委托或枚举声明中. 二.分部类 在以下几种情况下需要拆分类定义: 处理大型项目时,使一个类分布于多个独立文件中可以让多位程序员同时对该类进行处理. 使用自动生成的源时,无需重新创建源文件便可将代码添加到类中. Visual Studio 在创建 Windows 窗体.Web 服务包装器代码等时都使用此方法.

分部类和分部方法

分部类通过关键字partial进行声明,分部类可以将类.结构或接口的定义拆分到两个或多个源文件中.每个源文件包含类定义的一部分,编译应用程序时将把所有部分组合起来.在以下几种情况下需要拆分类定义: 处理大型项目时,使一个类分布于多个独立文件中可以让多位程序员同时对该类进行处理. 使用自动生成的源时,无需重新创建源文件便可将代码添加到类中.Visual Studio 在创建 Windows 窗体.Web 服务包装代码等时都使用此方法.您无需编辑 Visual Studio 所创建的文件,便可创建使

C#分部类和分部方法的使用

将同一个类编写在多个文件中,类的各个文件名不同,类名相同,类名前加partial关键字,这种类型叫分部类. 在分部类中可以建立分部方法,方法名前加关键字partial,分部方法只能将方法分成两部分,即声明部分和实现部分分别位于不同的分部类里.分部方法可以使静态方法,但必须是隐式的私有方法,并且无返回值的方法,因为分部方法时私有方法,所以无法使用virtual修饰符,即不能成为虚方法:分部方法可以有ref参数,但不能有out参数:不允许将委托转换为分部方法. 下例中首先建立项目PartialTyp

C#练习笔记3:分部类分部方法,索引结合异常的使用

分部类,分部方法,索引的运用虽说不常见,但是有时还是会用到的,还有一些异常的处理, using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication6 { class Program { static void Main(string[] args) { //分部类测试 Te

C# 分部类和方法 (partial)

可以将类.结构.接口和方法的定义拆分到多个源文件中.每个源文件包含类型或方法的部分定义,在编译时,这些部分会被组合起来. 1.Partial Classes 在以下几种情况需要拆分类定义: 对于大型项目,将一个类分部为多个独立文件可以让多个程序员同时对该类进行处理. 使用自定生成的源文件时,不用修改文件就可以将代码添加到类中.Visual Studio 在创建 Windows Forms,Web 服务包装代码时都用到了该方法.无需修改Visual Studio 创建的文件你就可以使用这些代码.

C# Partial:分部方法和分部类

using System; namespace Partial { class Program { static void Main(string[] args) { A a = new A(); } } partial class A { public A() { PrintHello(); PrintWorld(); Console.Read(); } partial void PrintHello() { Console.Write("Hello"); } } partial c

来看看两种好玩的方法,扩展方法和分部方法

好久没过来扯淡了,话说这年头还有偶遇的事情吗?比如国庆回家的汽车上有个妹子要你qq,要你微信,想着法子跟你聊天,然后睡了一觉,醒来发现 肾不见了?小花絮小花絮,要是肾真没了,也吹不了牛,败不了火了,继续言归正传. 一:扩展方法 说到扩展方法,我想大家都已经再熟悉不过了,也许你的解决方案中有无数个这样的扩展方法,自从有了Linq之后,我们的集合就再也不单纯了. 从下面的Linq类中,所有的方法都扩展在IEnumerable<T>上,恰恰我们的集合都继承于IEnumerable接口下面. 然后我们

分部方法 partial

当有如下这样类似的情况出现的时候,可以有更好的优化方式来处理,那就是分部方法 1 class PartOld 2 { 3 string name; 4 5 public virtual void OnChangeName(string str) 6 { 7 } 8 9 public string Name 10 { 11 set 12 { 13 //如果该方法没有实现的话,生成的IL 代码也会有调用这样的一个虚方法 callvirt, 造成性能上不必要的损失 14 OnChangeName(va

C#3 分部方法,简单标记一下

如果我问你,如果一个普通的类实现了一个接口方法,但是这个类的实例却访问不到这个接口的方法,这种情况你遇到过吗?有时候,你可能在使用分部方法时就会发现这么一个现象. C#3 中出现了 “分部方法” ,工作了好几年一直没用过,可能不咋实用,也有可能是工作中没有遇到这种场景,分部类倒是用了不少.最近看了一下,内容简单,标记一下. 我们 分部方法 和分部类有点类似的是 也是使用的关键字 partial ,不过不同的是 部分方法 不能有访问修饰符 (像public) 或者 virtual ,abstrac