ホームページ > バックエンド開発 > C++ > 静的変数は C# でどのように機能し、その制限は何ですか?

静的変数は C# でどのように機能し、その制限は何ですか?

Barbara Streisand
リリース: 2025-01-11 21:27:43
オリジナル
697 人が閲覧しました

How Do Static Variables Work in C# and What Are Their Limitations?

C# 静的変数: 機能と制約

C# の静的変数は、複数のクラス インスタンスにわたるデータを管理するための中心的な要素です。 効果的な C# プログラミングには、その目的と制限を理解することが重要です。

静的変数の役割

静的変数は、クラスのすべてのインスタンスによって共有されるデータを保持します。各オブジェクトに固有のインスタンス変数とは異なり、静的変数はすべてのクラス メンバーがアクセスできる単一の値を維持します。

静的変数の利点:

  • データの冗長性の排除: データを静的に保存すると、インスタンス間での重複が防止され、メモリが節約されます。
  • データの一貫性を確保します: 静的変数の共有の性質により、すべてのクラス インスタンスにわたるデータの一貫性が保証されます。
  • クラス構造の簡素化: 共有データを静的変数に一元化することで、クラス コードが合理化されます。

メソッド内での静的変数宣言の制限

メイン プログラム ブロックでは許可されていますが、メソッド内で静的変数を宣言することは禁止されています。この制限は以下に起因します:

  • スコープの制限: 静的変数はクラス レベルで存在します。その範囲は個々のメソッドを超えて広がります。 メソッド内で宣言すると、アクセシビリティが制限されます。
  • 名前の競合の可能性: 複数のメソッドが同じ名前の静的変数を宣言すると、名前の競合や予期しない動作が発生します。

説明例: 静的変数の共有

次の例は、クラス インスタンス間で静的変数がどのように共有されるかを示しています。

<code class="language-csharp">class Book
{
    public static int myInt = 0;
}

public class Exercise
{
    static void Main()
    {
        Book book1 = new Book();
        Book book2 = new Book();

        book1.myInt++; // Incrementing the static variable
        Console.WriteLine($"myInt value in book1: {book1.myInt}");

        Console.WriteLine($"myInt value in book2: {book2.myInt}"); // Displays the incremented value
        Console.ReadKey();
    }
}</code>
ログイン後にコピー

ここで、静的変数である myInt は、Book インスタンス内でインクリメントされます。 共有されているため、別の Book インスタンスが更新された値にアクセスし、静的変数の共有の性質を強調しています。

以上が静的変数は C# でどのように機能し、その制限は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート