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オブジェクトを作成する必要はありません。MessageBoxShow

于 2009-08-25T09:16:59.687 に答える