将普通方法转换为静态有什么好处?

时间:2009-08-25 09:12:30

标签: c# .net static-methods

从问题中可以清楚地看出,如果我将普通方法转换为静态方法,我将获得哪些收益?

3 个答案:

答案 0 :(得分:13)

您将获得清晰度,因为static清楚地表明该方法不依赖于对象状态。您还将提供可重用性,因为static方法可以在更多上下文中使用(即,当您没有该类的实例时)。

一般来说,这不是一个获得的问题,而是一个语义问题:你的方法是否依赖于对象状态?如果是,请将其设为非static。在所有其他情况下,请将其设为static

答案 1 :(得分:1)

除了上面提到的语义原因之外,静态方法通常更快(由于不必创建调用方法的对象)。它们需要进行编译时优化,据我所知,CLR还对它们进行了一些特殊的优化。

答案 2 :(得分:0)

静态函数通常用于像ConverThisTypeToThatType()这样的实用程序,你可以在没有类的对象的情况下调用它们。

例如:MessageBox.Show("Something");

此处MessageBox是一个类,其中Show是静态方法,因此我们不需要创建MessageBox的对象来调用Show

相关问题