「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > C#静的変数はどのように機能し、なぜそれらをメソッド内で宣言できないのですか

C#静的変数はどのように機能し、なぜそれらをメソッド内で宣言できないのですか

2025-04-29に投稿されました
ブラウズ:443

How Do Static Variables Work in C# and Why Can't They Be Declared Inside Methods?

c#

の静的変数

多くの開発者は、C#の静的変数の機能を理解するのに苦労しています。この記事の目的は、その用途と使用法を明確にしながら、静的変数をメソッド内で宣言できない理由を説明することを目的としています。

静的変数とは何ですか?

静的変数は、そのクラスのすべてのインスタンスで共有されるクラスレベルの変数です。その値は、クラスから作成されたすべてのオブジェクト間で共有されます。

静的変数はいつ使用しますか?

値を維持するためにクラスの複数のインスタンスが必要な場合、通常、静的変数が使用されます。いくつかの典型的なユースケースには以下が含まれます:

  • ストレージ定数値
  • サステインカウンター
  • プログラムのさまざまな部分間でデータを共有

なぜ静的変数をメソッド内で宣言できないのですか?

静的変数は、インスタンスレベルの変数とは異なるスコープがあるため、メソッドの外側に宣言されます。インスタンスレベルの変数は、オブジェクトインスタンスの範囲内にのみ存在しますが、静的変数はクラス自体に存在します。したがって、メソッドには独自の分離範囲があるため、メソッド内で静的変数を宣言することはできません。

例:

静的変数とインスタンスレベルの変数の違いを示す次のコードを検討してください:

public class Book
{
    public static int myInt = 0; // 静态变量
    public int instanceInt = 5; // 实例级变量
}

public class Exercise
{
    static void Main()
    {
        Book book1 = new Book();
        book1.instanceInt  ; // 增加实例级变量
        book1.myInt  ; // 增加静态变量

        Book book2 = new Book();
        Console.WriteLine(book2.instanceInt); // 输出 5
        Console.WriteLine(book2.myInt); // 输出 1
    }
}

この例では:

  • myint は、 book クラスのオブジェクトが変更されるたびに1によって増分される静的変数です。
  • instanceint は、属する特定の book オブジェクトにのみ1を増分するインスタンスレベルの変数です。

結論は:

静的変数は、クラスの複数のインスタンス間で共有されたデータを保存するための強力なツールです。効果的なC#プログラミングには、使用と使用法を理解することが不可欠です。ただし、静的変数は、それらの異なるスコープのためにメソッド内で宣言できないことを覚えておくことが重要です。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3