4

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

4

3 回答 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 回答