C#では、VB.Netのようなメソッドに静的変数を配置する方法はありますか?
Static myCollection As Collection
C#では、VB.Netのようなメソッドに静的変数を配置する方法はありますか?
Static myCollection As Collection
C#が静的メソッド変数をサポートしないのはなぜですか?
Q:C ++では、静的メソッド変数を記述して、メソッド内からのみアクセスできる変数を作成することができます。C#はこの機能を提供していません。なんで?
A:C#にこの機能がない理由は2つあります。
まず、クラスレベルの静的を使用することでほぼ同じ効果を得ることができ、メソッドの静的を追加するには複雑さが増す必要があります。
第2に、メソッドレベルの統計は、コードが繰り返し呼び出されたり、複数のスレッドから呼び出されたりしたときに問題が発生することで有名です。また、定義がメソッド内にあるため、定義を見つけるのが難しくなります。
--msdn c#よくある質問
いいえ、ありませんが、これはクラスレベルで静的変数を持つこととどのように異なりますか?
実際、共有がどのように実装されているかを調べると、クラスに静的フィールドを作成するのはコンパイラのトリックです。
VB.NETに最も近いのStatic
は、現在のタイプでフィールドを作成することです。それ以外のC#には同等のものはありません。
いいえ、CLRはこれをサポートしておらず、VB.NETはそれを可能にするためにコンパイラのトリックに頼っています。うーん。
私はC#の同等物が次のようになっていると確信していconst
ます:したがって:
public const Collection myCollection = new Collection();
私はVB.NETにあまり詳しくないので、ベースから外れている可能性がありますが、これにより、変更できない変数を設定できます。