从问题中可以清楚地看出,如果我将普通方法转换为静态方法,我将获得什么收益?
问问题
167 次
3 回答
13
您将变得清晰,因为static
清楚地表明该方法不依赖于对象状态。您还将促进可重用性,因为static
方法可以在更多的上下文中使用(即当您没有类的实例时)。
一般来说,这不是真正的增益问题,而是语义问题:您的方法是否依赖于对象状态?如果是这样,请将其设为非static
. 在所有其他情况下,制作它static
。
于 2009-08-25T09:16:11.527 回答
1
除了上面提到的语义原因之外,静态方法通常更快(由于不必创建对象来调用该方法)。它们受到编译时优化的影响,据我所知,CLR 还对它们进行了一些特殊的优化。
于 2009-08-25T09:25:43.223 回答
0
静态函数通常用于实用程序之类的东西ConverThisTypeToThatType()
,您可以在没有其类的对象的情况下调用它们。
前任:MessageBox.Show("Something");
这里MessageBox
是一个类并且Show
是其中的静态方法,所以我们不需要创建对象MessageBox
来调用Show
。
于 2009-08-25T09:16:59.687 回答