我越来越意识到我的代码在任何单个文件中都可以很容易地跨越数百行,虽然我知道实现可能是合理的,但它仍然感觉凌乱和无组织。
我知道有些情况需要大量代码,但最好的方法是组织这些代码吗?
我考虑过将变量与方法private
从public
和internals
分开,但我不想这样做,因为我无法想到那些组件ONE类属于一个文件。
当我使用WPF窗口的代码隐藏时,整个事情变得更加复杂,这个窗口似乎总是以指数速度迅速增长为一个巨大的混乱。
另外:C#有一个名为partial
的关键字,它允许您在不影响功能的情况下将类拆分为任意数量的文件。但是,我注意到Microsoft似乎只使用partial
来隐藏生成的代码(Winforms / WPF。)这让我质疑是否仅仅因为它有很多行而拆分类是{{{{ 1}} - 是吗?
由于
答案 0 :(得分:13)
将您的代码分成几个职责。对于每个职责,定义单一类型。也就是说,请遵循Single Responsibility Principal。这样做会产生较小的代码单元,每个代码单元执行一个非常特定的功能。这不仅会导致文件更小,而且会带来更好的设计和可维护性。
答案 1 :(得分:9)
如果你的文件很大,因为它们包含一个很大的单个类/结构,那么这通常(但不总是)提示你的类处理多个问题,并且可以重构为更多,更多专门课程。
答案 2 :(得分:5)
如果我理解你,你的主要问题是你的表单最终会变得太大,导致那些包含太多代码的表单的类,如果你的表单不是很简单,这是很正常的。尝试最小化此方法的方法是使用User Controls,因为如果将控件移动到其他类,则还会将代码移到其他类。
有时可能会使控件之间的通信变得更加困难,但这通常可以通过每个类中的代码更容易理解来弥补。
答案 3 :(得分:2)
我倾向于将属性,构造函数,方法和辅助方法(私有方法)与区域组合在一起。如果我有很多方法,我会根据他们的工作创建更多区域(特别适合过载)。说到过载,请尝试使用可选参数最小化代码。
据我所知,partial意味着该类存在于两个单独的文件中。 Webforms和控件是部分的,因为文件的另一个“部分”是与它一起的[p | c] x文件。
答案 4 :(得分:1)
我认为,如果你不能在一个屏幕上看到整个方法(即你必须滚动),你应该将方法分解为更多方法 - 在同一个类中或者代码将被更多地使用时而不是一次进入帮助班。
答案 5 :(得分:0)
我们使用stylecop。它有点帮助,因为它强制执行代码上的结构以及应该出现在哪里的顺序。因此,您可以更直观地找到更大的文件。
答案 6 :(得分:0)
为了提高代码可读性:您可以使用区域块:https://msdn.microsoft.com/en-us/library/9a1ybwek.aspx。至于改进代码的结构和设计 - 请参考一些专业书籍。