C#の静的メンバー

C#では静的メンバーというものを宣言する事ができます。

通常クラスを利用する場合、キーワード(予約語) new を使ってインスタンスを生成します。
フィールドはインスタンス毎の値を格納し、メソッドはそのインスタンスに対して処理を行います。

これとは別に、インスタンスには属さずクラスそのものに属するフィールドやメソッドを定義する事ができ、これを静的メンバーといいます。



静的フィールド

静的フィールドは生成されたインスタンスではなくクラスそのもの属するフィールドです。
静的フィールドを使う為にインスタンスを生成する必要はありません。
インスタンス毎に別々の値を格納できる通常のフィールドと違い、格納できる値はプログラム内で1つだけです。


静的フィールドの定義

静的フィールドはキーワード(予約語) static を使って宣言します。
public class TestClass
{
    public static int TestField;  // 静的フィールド
}


静的フィールドの利用

静的フィールドはクラスそのものに属するのでクラス名を使ってアクセスします。
public class TestClass
{
    public static int TestField;  // 静的フィールド
}


public class Program
{
    public static void Main()
    {
        TestClass.TestField = 10;  //[クラス名.フィールド名]でアクセス
    }
}



静的メソッド

静的メソッドは生成されたインスタンスではなくクラスそのもの属するメソッドです。
メソッドの中からは静的でないメンバーにアクセスする事は出来ません。


静的静的メソッドの定義

静的静的メソッドはキーワード(予約語) static を使って宣言します。
public class TestClass
{
    private int A;

    public static int TestMethod(int param)  // 静的メソッド
    {
        /*                                      静的ではないメンバーにはアクセスできない
        A = 10;
        */
        return param;
    }
}


静的メソッドの利用

静的メソッドはクラスそのものに属するのでクラス名を使ってアクセスします。
public class TestClass
{
    public static int TestMethod(int param)  // 静的メソッド
    {
        return param;
    }
}


public class Program
{
    public static void Main()
    {
        int x;
        x = TestClass.TestMethod(10);  //[クラス名.メソッド名]でアクセス
    }
}



コメント