关于winforms . net小方法的使用

本文关键字:方法 winforms net 关于 | 更新日期: 2023-09-27 18:02:08

我在c#中使用winforms开发应用程序。在开发过程中,我想使用许多小方法,例如resetPerticularCombo(),因此代码尽可能保持干净。但问题是为3-5行代码创建方法可能会导致太多的方法调用,我听说在编译Visual Studio 2008时使用代码内联来处理这件事。

我的问题是,我应该依靠这个功能,继续使用小助手方法,还是我应该自己使用内联?

关于winforms . net小方法的使用

证明这是一个问题之前,您不应该担心有大量的方法调用。这是非常不可能的(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。