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

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

目次

サンプル 静的メソッド
  静的クラス

静的メソッド

アクセス修飾子  class  クラス名{
  アクセス修飾子  static  戻り値の型  メソッド名() {
  }
}
  • メソッドの前にstatic修飾子をつけます。
  • クラスをインスタンス化せずに静的メソッドを使用できます。
  • クラスメソッドや静的メソッドとも呼ばれます。
  • クラス自体はインスタンス化できます。
  • staticは、「静的」という意味です。

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

using System;

namespace Project1
{
	class Test1
	{
		static void Main()
		{
			Class1.Print1(); //123

			Class1 c1 = new Class1();
			c1.Print2(); //456
		}
	}
	public class Class1
	{
		public static void Print1()
		{
			Console.WriteLine("123");
		}
		public void Print2()
		{
			Console.WriteLine("456");
		}
	}
}

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

静的クラス

アクセス修飾子  static  class  クラス名{
}
  • クラスの前にstatic修飾子をつけます。
  • クラスをインスタンス化できません。
  • メンバは静的なもの(staticメソッド等)しかありません。
  • 静的クラスは、インスタンスごとに異なるデータを保持する必要がない場合に使用します。
    →ユーティリティクラス等。

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

using System;

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

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

以下はMicrosoftの静的なクラスとメソッドの使用のリンクです。
https://docs.microsoft.com/ja-jp/powershell/scripting/samples/using-static-classes-and-methods?view=powershell-6

関連の記事

C#入門 クラスの仕組みとサンプル
C# メソッドのサンプル(値渡し/参照渡し他)
C# コンストラクタのサンプル
C# クラスの継承の仕組みとサンプル

△上に戻る