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

C#のインターフェースでメンバー関数(メソッド)を宣言する方法

C#のインターフェースでメンバー関数を宣言する方法

C#では、インターフェースにメンバー関数(メソッド)を宣言することで、実装クラスが満たすべき「契約」を定義できます。インターフェースのメンバー関数は、戻り値の型・名前・パラメータといったシグネチャだけを持ち、処理本体(実装)は含みません。実際の処理は、そのインターフェースを実装するクラス側で記述します。

基本的な宣言の構文

インターフェース内でメンバー関数を宣言するには、戻り値の型とメソッド名、必要なパラメータを記述し、セミコロン(;)で終わらせます。アクセス修飾子(public など)を付ける必要はありません。インターフェースのメンバーはすべて暗黙的に public となるためです。

public interface InterfaceName {
    // インターフェースメンバー
    void InterfaceMemberOne();
    double InterfaceMemberTwo();
    void InterfaceMemberThree();
}

上記の例では、次の3つのメンバー関数を宣言しています。

  • InterfaceMemberOne() … 戻り値なし(void)
  • InterfaceMemberTwo() … double 型の値を返す
  • InterfaceMemberThree() … 戻り値なし(void)

クラスでのインターフェース実装

宣言したインターフェースを実装するには、クラス名の後にコロン(:)を付けてインターフェース名を指定します。そして、インターフェースで宣言されたすべてのメンバー関数を、public としてオーバーライドする形で実装しなければなりません。

public class ClassName : InterfaceName {
    public void InterfaceMemberOne() {
        // 実際の処理をここに記述
    }
}

動作する完全なサンプルコード

以下は、図形の面積を扱うインターフェース IShape を宣言し、それを Circle クラスで実装した完全な例です。

using System;

public interface IShape {
    double GetArea();   // 面積を返す
    void DisplayInfo(); // 情報を表示する
}

public class Circle : IShape {
    private double radius;

    public Circle(double r) {
        radius = r;
    }

    public double GetArea() {
        return Math.PI * radius * radius;
    }

    public void DisplayInfo() {
        Console.WriteLine("円の面積: " + GetArea());
    }
}

class Program {
    static void Main() {
        IShape shape = new Circle(5.0);
        shape.DisplayInfo(); // 出力: 円の面積: 78.53981633974483
    }
}

押さえておきたいポイント

  • インターフェースのメンバー関数には実装本体を書かず、必ずセミコロンで終えます。
  • アクセス修飾子は省略でき、すべてのメンバーは暗黙的に public になります。
  • インターフェースを実装するクラスは、宣言された全メンバーを実装する義務があります。
  • C# 8.0 以降では「デフォルトインターフェース実装」により、インターフェース側に既定の処理を書くことも可能です。

このように、C#のインターフェースを使えば、複数のクラスに共通の操作を強制できるため、柔軟で保守性の高い設計が実現できます。

  1. Pythonでグローバル変数を宣言する方法!globalキーワードの使い方を徹底解説

    グローバル変数とは?グローバル変数とは、関数の外側で宣言された変数であり、関数の内側でも利用できる変数のことです。サンプルコードdef func(): print(a) a = 10 func()出力結果10この例では、変数 a は関数の外側で宣言されているため、グローバル変数として扱われます。関数の中からでも参照できるため、変数 a のスコープ(有効範囲)はプログラム全体に及びます。関数内で同名の変数を定義するとどうなる?次に、関数の中でグローバル変数と同じ名前の変数を新しく作った場合の挙動を見てみましょう。上記の例のように、変数 a が関数の外側で宣言されていれば、それはグローバル

  2. Python関数でvoid(None)を返す方法をわかりやすく解説

    Pythonは動的型付け言語であり、関数を定義する際に戻り値の型を指定する必要がありません。そのため、関数は任意の型の値を自由に返すことができます。C言語やJavaにあるような「void型」という概念はPythonには存在しませんが、代わりにNoneという特別なオブジェクトがその役割を担っています。 戻り値を指定しない場合、自動的にNoneが返される Pythonでは、return文を書かずに関数を終了した場合、関数は暗黙的にNoneを返します。つまり、以下の2つの関数はまったく同じ動作をします。 def func_a(): print(処理を実行) # return文がな