15

C#では、VB.Netのようなメソッドに静的変数を配置する方法はありますか?

Static myCollection As Collection
4

5 に答える 5

21

C#が静的メソッド変数をサポートしないのはなぜですか?

Q:C ++では、静的メソッド変数を記述して、メソッド内からのみアクセスできる変数を作成することができます。C#はこの機能を提供していません。なんで?

A:C#にこの機能がない理由は2つあります。

まず、クラスレベルの静的を使用することでほぼ同じ効果を得ることができ、メソッドの静的を追加するには複雑さが増す必要があります。

第2に、メソッドレベルの統計は、コードが繰り返し呼び出されたり、複数のスレッドから呼び出されたりしたときに問題が発生することで有名です。また、定義がメソッド内にあるため、定義を見つけるのが難しくなります。

--msdn c#よくある質問

于 2009-05-08T15:32:47.230 に答える
5

いいえ、ありませんが、これはクラスレベルで静的変数を持つこととどのように異なりますか?

実際、共有がどのように実装されているかを調べると、クラスに静的フィールドを作成するのはコンパイラのトリックです。

于 2009-05-08T15:33:31.173 に答える
3

VB.NETに最も近いのStaticは、現在のタイプでフィールドを作成することです。それ以外のC#には同等のものはありません。

于 2009-05-08T15:31:10.417 に答える
1

いいえ、CLRはこれをサポートしておらず、VB.NETはそれを可能にするためにコンパイラのトリックに頼っています。うーん。

于 2009-05-08T15:31:42.020 に答える
-6

私はC#の同等物が次のようになっていると確信していconstます:したがって:

public const Collection myCollection = new Collection();

私はVB.NETにあまり詳しくないので、ベースから外れている可能性がありますが、これにより、変更できない変数を設定できます。

于 2009-05-08T15:35:42.980 に答える