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# クラスの継承の仕組みとサンプル