我什么时候应该使用Partial关键字?

Kyl*_*ran 5 c# multiple-inheritance partial-classes

我正在阅读有关Partial关键字的MSDN文章,这部分引起了我的注意:

partial关键字表示可以在命名空间中定义类,结构或接口的其他部分.所有部分都必须使用partial关键字.所有部件必须在编译时可用,以形成最终类型.所有部件必须具有相同的可访问性,例如public,private等.

[...]

指定基类的所有部分必须一致,但省略基类的部分仍然继承基类型.部件可以指定不同的基接口,最终类型实现所有部分声明列出的所有接口.在部分定义中声明的任何类,结构或接口成员都可用于所有其他部分.最后的类型是编译时所有部分的组合.

关于这个概念我有两个问题:

  • 首先,似乎这是一种绕过C#中缺少多重继承的方法(当然除了接口).除了正常的多重继承问题,例如钻石问题,这样做是否会产生任何影响?基本上,仅仅因为我可以,这是否意味着我应该

  • 其次,我什么时候应该拆分文件?通过阅读本文,我觉得我应该能够在自己的文件中声明一个嵌套类,并将其与包含的类一起分开,从而提高可读性.这是Partial的要点,还是仅应按照上述文章中的描述使用?

Jus*_*ner 8

首先,这与C#中的多重继承无关.它只是允许您在文件之间拆分类的实现.C#中的常规类也可以实现多个接口,因此您不会通过使用部分类获得任何东西.

其次,当某个类的实现的一部分由某个工具生成而另一部分由开发人员编写时,部分类是最有用的.这允许您重新生成代码的生成部分,而不会丢失实现的手动编码部分.