インターフェイス (C# リファレンス)

インターフェイスには、メソッドプロパティイベント、またはインデクサーのシグネチャのみが含まれています。インターフェイスを実装するクラスまたは構造体は、インターフェイス定義で指定されているインターフェイスのメンバーを実装する必要があります。次の例の ImplementationClass クラスは、void を返す、パラメーターのない SampleMethod メソッドを実装する必要があります。

使用例を含む詳細については、「インターフェイス (C# プログラミング ガイド)」を参照してください。

使用例

interface ISampleInterface
{
    void SampleMethod();
}

class ImplementationClass : ISampleInterface
{
    // Explicit interface member implementation: 
    void ISampleInterface.SampleMethod()
    {
        // Method implementation.
    }

    static void Main()
    {
        // Declare an interface instance.
        ISampleInterface obj = new ImplementationClass();

        // Call the member.
        obj.SampleMethod();
    }
}

インターフェイスは、名前空間またはクラスのメンバーであり、次のメンバーのシグネチャを含むことができます。

インターフェイスは、1 つ以上の基本インターフェイスから継承できます。

基本型のリストに基本クラスとインターフェイスが含まれる場合は、基本クラスがリストの最初に表示されます。

インターフェイスを実装するクラスは、そのインターフェイスのメンバーを明示的に実装できます。明示的に実装されているメンバーには、クラス インスタンスではアクセスできません。インターフェイスのインスタンスを使用した場合にのみアクセスできます。

インターフェイスの明示的な実装の詳細とコード例については、「明示的なインターフェイスの実装 (C# プログラミング ガイド)」を参照してください。

ここでは、インターフェイスの実装例を示します。この例では、インターフェイスにプロパティ宣言が含まれ、クラスに実装が含まれます。IPoint を実装するクラスのインスタンスには、整数プロパティ x および y が含まれています。

interface IPoint
{
   // Property signatures:
   int x
   {
      get;
      set;
   }

   int y
   {
      get;
      set;
   }
}

class Point : IPoint
{
   // Fields:
   private int _x;
   private int _y;

   // Constructor:
   public Point(int x, int y)
   {
      _x = x;
      _y = y;
   }

   // Property implementation:
   public int x
   {
      get
      {
         return _x;
      }

      set
      {
         _x = value;
      }
   }

   public int y
   {
      get
      {
         return _y;
      }
      set
      {
         _y = value;
      }
   }
}

class MainClass
{
   static void PrintPoint(IPoint p)
   {
      Console.WriteLine("x={0}, y={1}", p.x, p.y);
   }

   static void Main()
   {
      Point p = new Point(2, 3);
      Console.Write("My Point: ");
      PrintPoint(p);
   }
}
// Output: My Point: x=2, y=3

C# 言語仕様

詳細については、「C# 言語仕様」を参照してください。言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。

参照

関連項目

C# のキーワード

参照型 (C# リファレンス)

インターフェイス (C# プログラミング ガイド)

プロパティの使用 (C# プログラミング ガイド)

インデクサーの使用 (C# プログラミング ガイド)

class (C# リファレンス)

struct (C# リファレンス)

インターフェイス (C# プログラミング ガイド)

概念

C# プログラミング ガイド

その他の技術情報

C# リファレンス