我问这个是因为我发现分发类定义是一个非常危险的功能,所以你不能确定你是否知道它的全部内容。即使我找到三个部分定义,我怎么知道某个地方没有第四个?
我是C#的新手但已经花了10年时间使用C ++,也许这就是为什么我被动摇了?
无论如何,“部分”概念必须有一些很大的好处,我显然很遗憾。我想更多地了解它背后的哲学。
编辑:抱歉,在搜索现有帖子时错过this duplicate。
答案 0 :(得分:31)
使用代码生成时,部分类很方便。如果要修改生成的类(而不是从中继承),则在重新生成代码时可能会丢失更改。如果您能够在单独的文件中定义额外的方法等,则可以重新创建类的生成部分,而无需修改手工制作的代码。
答案 1 :(得分:11)
最大的好处是隐藏计算机生成的代码(由设计师) Eric Lippert最近发表了一篇关于partial-keyword的博客文章。
另一种用法可能是为嵌套类提供自己的文件。
答案 2 :(得分:3)
编辑同一个类的两个人和自动生成的设计器代码是我能看到的两个直接的功能,这些功能是通过部分类和方法解决的。
将设计器生成的代码放在一个单独的文件中很多比1.1更容易使用,你的代码经常被Visual Studio(在windows窗体中)破坏。
Visual Studio仍然使用ASP.NET同步设计器文件,代码隐藏和设计文件。
答案 3 :(得分:3)
另一点是,当一个类实现多个接口时,您可以在不同的文件上拆分接口实现。
因此每个代码文件只包含属于接口实现的代码。这是根据关注点分离概念。
答案 4 :(得分:2)
如果你有某种荒谬的大类,由于某种原因无法或不允许在逻辑上分成更小的类,那么你至少可以将它们分成多个文件,以便更有效地使用它。基本上,您可以一次查看小块,避免向上和向下滚动。
这可能适用于遗留代码,可能由于某些神秘政策而导致现有API混乱,因为存在大量且根深蒂固的依赖。
不一定是部分类的最佳使用,但肯定会为您提供一个替代选项来组织您可能无法修改的代码。
答案 5 :(得分:1)
也许为时已晚,但请允许我加上我的2美分:
*。在处理大型项目时,将类分散到单独的文件上允许多个程序员同时处理它。
*。您可以轻松编写VS.NET生成的类的代码(用于扩展功能)。这将允许您编写自己需要的代码,而不会弄乱系统生成的代码