gpt4 book ai didi

c# - 什么时候应该使用 Partial 关键字?

转载 作者:太空狗 更新时间:2023-10-29 22:16:30 26 4
gpt4 key购买 nike

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

The partial keyword indicates that other parts of the class, struct, or interface can be defined in the namespace. All the parts must use the partial keyword. All the parts must be available at compile time to form the final type. All the parts must have the same accessibility, such as public, private, and so on.

[...]

All the parts that specify a base class must agree, but parts that omit a base class still inherit the base type. Parts can specify different base interfaces, and the final type implements all the interfaces listed by all the partial declarations. Any class, struct, or interface members declared in a partial definition are available to all the other parts. The final type is the combination of all the parts at compile time.

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

  • 首先,这似乎是一种绕过 C# 中缺少多重继承的方法(当然除了接口(interface)之外)。除了正常的多重继承问题(例如菱形继承(钻石问题))之外,这样做有什么影响吗?基本上,仅仅因为我可以,是否意味着我应该

  • 其次,我应该在什么时候拆分文件?光是读到这里,感觉应该可以在自己的文件中声明一个嵌套类,并将其与包含类一起partial,从而提高可读性。这就是Partial的意义所在,还是只能按照上面文章中的描述来使用?

最佳答案

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

其次,当类的部分实现由某种工具生成而另一部分由开发人员编写时,分部类最有用。这使您可以重新生成代码的已生成部分,而不会丢失实现的手动编码部分。

关于c# - 什么时候应该使用 Partial 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14418645/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com