假設您有一些方法可以在非靜態類中進行靜態化。
例如:靜態與非靜態方法
private double power(double a, double b)
{
return (Math.Pow(a, b));
}
你看到從改變方法的簽名爲靜態任何好處?在上面的例子:
private static double power(double a, double b)
{
return (Math.Pow(a, b));
}
即使有一些性能或記憶的增益,不會編譯器做在編譯時一個簡單的優化?
編輯:我在尋找的是通過聲明方法爲靜態的好處。我 知道,這是常見的做法。我想了解它背後的邏輯。
當然,這種方法只是一個例子來闡明我的意圖。
@大家好,我知道這是發展年代的一個「古老」問題,但它今天仍然相關。下面有很多**優秀的**答案。需要您的特定場景的實際性能數字?編寫一個快速的程序,調用該方法足夠多的時間(在var start = DateTime.Now()和var end = DateTime.Now()之間),以便能夠經歷足夠長的時間以進行比較。用`static`運行幾次,沒有`static`運行幾次並比較差異。也許打開TaskManager並觀察每個場景的內存使用情況。 – 2014-11-25 15:12:21
只是爲了完整性,而不是比較兩個`DateTime.Now()`之間的差異,請使用[`StopWatch`類](https://msdn.microsoft.com/zh-cn/library/system.diagnostics。秒錶(v = vs.110)的.aspx)。 編輯 - 爲什麼?它比'DateTime.Now()`方式更準確,更易於使用。 – 2015-11-18 09:44:06