C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#の静的クラス(static class)とは?特徴と基本的な使い方を解説

C#の静的クラスとは

C#における静的クラス(static class)とは、インスタンス化できないクラスのことです。静的クラスには静的メンバー(staticメンバー)のみを含めることができ、オブジェクトを生成せずに直接利用します。

また、静的クラスは自動的にsealed(シールド)として扱われるため、継承することもできません。さらに、インスタンスコンストラクターを定義することもできないという特徴があります。

静的クラスの主な特徴

  • newキーワードによるインスタンス化ができない
  • 静的メンバー(staticフィールド、staticメソッドなど)のみを持つことができる
  • sealedとして暗黙的に宣言され、継承できない
  • インスタンスコンストラクターを含めることができない

静的クラスと静的メンバーの使用例

以下は、静的クラスとその静的メンバーを使用したサンプルコードです。

using System;

public static class Demo {
    public static float PI = 3.14f;
    public static int calc(int n){return n*n;}
}

class Program {

    public static void Main(string[] args) {
        Console.WriteLine("PI: "+Demo.PI);
        Console.WriteLine("Square: " + Demo.calc(3));
    }
}

出力結果

PI: 3.14
Square: 9

コードの解説

上記のコードでは、まず次のように静的クラス「Demo」を定義しています。

public static class Demo {
    public static float PI = 3.14f;
    public static int calc(int n){return n*n;}
}

このクラスには、以下の2つの静的メンバーが含まれています。

public static float PI = 3.14f;
public static int calc(int n){return n*n;}
  • PI:円周率の値を格納する静的フィールド
  • calc:引数で受け取った数値の2乗を返す静的メソッド

Mainメソッド内では、「Demo.PI」や「Demo.calc(3)」のように、クラス名を指定して直接メンバーにアクセスしています。このように、静的クラスのメンバーはインスタンスを生成することなく、クラス名経由で呼び出すことができます。

まとめ

C#の静的クラスは、ユーティリティ関数や定数の集まりなど、インスタンスの状態を持つ必要がない機能をまとめるのに適しています。Mathクラスのような標準ライブラリでも同様の設計が採用されており、実務でも頻繁に活用される重要な概念です。

  1. 静的IPアドレスとは?動的IPアドレスとの違いや設定方法を徹底解説

    静的IPアドレス(スタティックIPアドレス)とは、DHCPサーバーによって自動的に割り当てられるのではなく、デバイスに手動で設定されるIPアドレスのことです。「静的」と呼ばれるのは、一度設定すると変化せず固定されるためです。一方、動的IPアドレスは定期的に変更されます。ルーターやスマートフォン、タブレット、デスクトップPC、ノートPCなど、IPアドレスを使用できるあらゆるデバイスに静的IPアドレスを設定できます。設定方法は、IPアドレスを配布する側(ルーターなど)で行うか、デバイス本体に直接入力するかのいずれかです。なお、静的IPアドレスは「固定IPアドレス」や「専用IPアドレス」と呼ばれるこ

  2. パブリックIPアドレスとは?仕組み・確認方法・隠し方を徹底解説

    パブリックIPアドレスとは、家庭や企業のルーターがISP(インターネットサービスプロバイダ)から割り当てられるIPアドレスで、インターネットにアクセスする際に使用されるものです。家庭用ルーターやWebサイトをホストするサーバーなど、外部からアクセス可能なネットワーク機器には、このパブリックIPアドレスが必須となります。 パブリックIPアドレスの役割とは? パブリックIPアドレスは、インターネットに接続されたデバイス同士を区別するための識別子です。インターネットにアクセスするすべてのデバイスは固有のIPアドレスを持っており、パブリックIPアドレスは「インターネットIP」と呼ばれることもあります。