关于winforms . net小方法的使用
本文关键字:方法 winforms net 关于 | 更新日期: 2023-09-27 18:02:08
我在c#中使用winforms开发应用程序。在开发过程中,我想使用许多小方法,例如resetPerticularCombo(),因此代码尽可能保持干净。但问题是为3-5行代码创建方法可能会导致太多的方法调用,我听说在编译Visual Studio 2008时使用代码内联来处理这件事。
我的问题是,我应该依靠这个功能,继续使用小助手方法,还是我应该自己使用内联?
在证明这是一个问题之前,您不应该担心有大量的方法调用。这是非常不可能的(IMO),这将实际上导致一个问题,如果它给你更可读的代码,这是最重要的事情。
但是一直测试的性能,看是否可以接受。无论是通过分析还是其他技术,找出代码中的瓶颈在哪里,并考虑在最重要的地方进行微优化。
根据我的经验,在"使用更少的方法"级别上进行微优化与更高级别的更改(例如从列表查找到字典查找等)相比几乎总是毫无意义的。
我同意Jon Skeet。
关于企业应用我可以告诉你以下
我领导着一个小的开发团队(5个开发人员)。我们有一个大约有500k loc的应用程序。
我们总是试图找到一个方法应该具有的最特殊的关注点。所以我们得到了很多小的,"自我解释"的;方法。因此,我们有很多很多方法,这从来不会导致问题。
大多数时候,瓶颈是在访问资源,如SQL Server,文件等…或者缺少异步性。
如果你有一个性能,你可以使用ants profilder来分析它。
我也喜欢这些"规则"。我以前在网上找到的优化方法
FirstRuleOfOptimization - Don't.
SecondRuleOfOptimization - Don't…然而。P
ThirdRuleOfOptimization - profilebeforeoptimization
如果你正在开发一个时间紧迫的软件(图形或驱动相关),那么这些东西可以说明这一点,但我不确定。net是否是做这件事的最佳环境
很多小例程是可以的,正如其他答案已经说过的,但是记住要考虑重构类似的例程,这是为了可读性和可维护性(而不是为了性能)。
resetPerticularCombo()
和resetAnotherCombo()
可能值得转换为resetCombo(PerticularCombo)
和resetCombo(AnotherCombo)
,如果例程其他方面相同。
对于匿名lambda,这甚至可以用来合并其他类似的算法:(可能是一个坏例子,但继续使用OP的代码) ProcessCombo(PerticularCombo, (c)=>c.Reset())
和ProcessCombo(PerticularCombo, (c)=>c.SelectFirst())
我是VB。