119

すべてのクラス (*.cs) がインスタンス参照なしでその内容にアクセスできるように変数を宣言するにはどうすればよいですか?

4

4 に答える 4

159

C#のグローバル変数を定義することはできません (どのクラスにも属さないという意味で)。

そうは言っても、この機能を模倣するために私が知っている最も簡単なアプローチは、static class次のように を使用することです。

public static class Globals
{
    public const Int32 BUFFER_SIZE = 512; // Unmodifiable
    public static String FILE_NAME = "Output.txt"; // Modifiable
    public static readonly String CODE_PREFIX = "US-"; // Unmodifiable
}

次に、コード内の任意の場所で定義された値を取得できます (同じ の一部である場合namespace)。

String code = Globals.CODE_PREFIX + value.ToString();

さまざまな名前空間を処理するには、次のいずれかを実行できます。

  • Globals特定のクラスに含めずにクラスを宣言しnamespaceます (グローバル アプリケーション名前空間に配置されるように)。
  • 別の から変数を取得するための適切な using ディレクティブを挿入しますnamespace
于 2013-01-16T21:43:52.223 に答える
81

C# にはグローバル変数のようなものはありません。限目。

必要に応じて、静的メンバーを持つことができます。

public static class MyStaticValues
{
   public static bool MyStaticBool {get;set;}
}
于 2013-01-16T21:28:18.033 に答える