【C#】static修飾子とは

staticとは

static修飾子は、静的メンバを作成する際に使用します。

 

静的メンバとは

通常、クラスのフィールドやメソッドを利用する前には、インスタンスを生成する必要がありました。

しかし、インスタンスを生成しなくても利用できるフィールドやメソッドがあります。
このインスタンスを生成しなくても利用できるフィールドやメソッドのことを静的メンバと呼びます。

静的メンバは、変数やメソッドなどをインスタンス単位で生成しません。
アプリケーションにただ一つだけ生成したい時に使用します。

 

ソースコード

staticの書き方は、下記のようにアクセス修飾子に続けて記述します。

// 静的フィールド
private static string AAA;

// 静的メソッド
public static void BBB()
{
}

サンプルコード

using System;

namespace practic
{
    class Program
    {
      // アプリケーションにただ一つの静的メンバ(静的フィールド)
        private static string _word = "これは静的メンバです。";
      // 静的メンバではないprivateなフィールド
        private string _speech = "これは静的メンバではありません。";

      // アプリケーションにただ一つの静的メンバ(静的メソッド)
        internal static void Call()
        {
          // 処理の中では、静的メンバのみ使用できる
            Console.WriteLine(_word);

       // _speechは静的メンバではないため使用できない
             //Console.WriteLine(_speech);
        }

      // Callメソッドと呼び出す
        static void Main(string[] args)
        {
            Call();
        }
    }
}

 

実行結果:
これは静的メンバです。

 

参考

■公式ドキュメント
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/static

 

おすすめ書籍

■C#を学習し始めた方向け
やさしいC 第3版 (「やさしい」シリーズ)

1週間でCの基礎が学べる本

確かな力が身につくC「超」入門 第2版 (Informatics&IDEA)

■C#をある程度学習した方向け
基礎からしっかり学ぶCの教科書 改訂新版 (マイクロソフト関連書)

独習C 新版

Effective C 6.0/7.0