C# 静的メソッドと静的クラスのサンプル(static)

C#の静的メソッドと静的クラスのサンプルです。

目次

静的メソッド

アクセス修飾子  class  クラス名{
  アクセス修飾子  static  戻り値の型  メソッド名() {
  }
}

コード

静的メソッドのサンプルです。

using System;
using System.Collections.Generic;

namespace Project1
{
    public class Class1
    {
        public static void Print1()
        {
            Console.WriteLine("123");
        }
        public void Print2()
        {
            Console.WriteLine("456");
        }
    }
    class Test1
    {
        static void Main()
        {
            Class1.Print1(); //123

            Class1 c1 = new Class1();
            c1.Print2(); //456
        }
    }
}

8行目は、メソッドにstaticがついています。静的メソッドです。
21行目は、クラスをインスタンス化せずにメソッドを実行しています。
12行目は、通常のメソッドです。1つのクラスに静的メソッドと通常のメソッドを記述できます。
23,24行目は、クラスをインスタンス化してメソッドを実行しています。

静的クラス

アクセス修飾子  static  class  クラス名{
}
  • クラスの前にstatic修飾子をつけます。
  • クラスをインスタンス化できません。
  • メンバは静的なもの(staticメソッド等)しかありません。

コード

staticクラスのサンプルです。

using System;
using System.Collections.Generic;

namespace Project1
{
    public static class Class1
    {
        public static int CNT = 123;
        public static void Print1()
        {
            Console.WriteLine("456");
        }
    }
    class Test1
    {
        static void Main()
        {
            Console.WriteLine(Class1.CNT);//123
            Class1.Print1(); //456
        }
    }
}

6行目は、クラスの前にstaticがついています。静的クラスでインスタンス化できません。
7行目は、静的な変数です。staticを削除するとエラーになります。
8行目は、静的メソッドです。staticを削除するとエラーになります。
18行目は、静的な変数を参照しています。
19行目は、静的メソッドを実行しています。

関連の記事

C# クラスの仕組みと使い方のサンプル
C# クラスのメソッド(名前/デフォルト/可変長引数)
C# クラスのメソッド(値渡し/参照渡し/戻り値が複数)
C# コンストラクタのサンプル
C# クラスの継承の仕組みとサンプル

△上に戻る