C# 中Partial的用法

                                                                              C# 中Partial的用法

在学习中又开始接触新的小知识了,记录一下,方便以后复习。

Partial

C#2.0可以将类,结构或接口的定义拆分到两个或多个源文件中,在类声明前添加Parrtial关键字即可

例:

//源class  
public
class ToDo { public string name { get; set; } public string password { get; set; } public bool judge(string Name, string Password) { if (Name == name && password == Password) { return true; } return false; } }
//用partial后拆分为一下
public partial class TODO { public string name { get; set; } public string password { get; set; } }
public partial class TODO { public bool judge(string Name, string Password) { if (Name == name && password == Password) { return true; } return false; } }
//由于拥有Parial指定后,不管分为几个类,class指针始终指向TODO,所以可以调用其中的所有属性,哈哈哈,挺好玩的

使用Partial需要注意以下一些情况

1、使用partial 关键字表明可在命名空间内定义该类、结构或接口的其他部分

2、所有部分都必须使用partial 关键字

3、各个部分必须具有相同的可访问性,如public、private 等

4、如果将任意部分声明为抽象的,则整个类型都被视为抽象的

5、如果将任意部分声明为密封的,则整个类型都被视为密封的

6、如果任意部分声明继承基类时,则整个类型都将继承该类

7、各个部分可以指定不同的基接口,最终类型将实现所有分部声明所列出的全部接口

8、在某一分部定义中声明的任何类、结构或接口成员可供所有其他部分使用

应用场景

可以使用partial class的场景很多。这里分析一个ORM的例子。系统中有一个Cat类,属性ID、Age、Weight都需要存储到数据库中,一个信息系统中常见的需求。通过读取数据库的结构,可以用工具生成Cat类的代码。并且ORM框架支持了从数据库信息生成Cat对象。

现在的Cat什么动作都没有,客户说,我们需要一个Miaow()的函数。这时就需要对ORM生成的Cat类进行扩展了。可以肯定地一点是,我们不能修改自动生成的代码,因为这会牵涉到数据库结构与代码同步的问题。解决这个需求有两种方法:继承方式扩展,partial class扩展。

优缺点

Partial的优缺点其实都挺明显:

优点:

提高了程序员开发时对程序编辑的灵活性,只需要维护自己的项目模块就好

缺点:

降低了程序逻辑的可读性,增加了维护的难度

 

 

posted on 2020-09-01 12:52  小毛崽子  阅读(6189)  评论(0编辑  收藏  举报

导航