インターフェイス (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# の構文と使用法に関する信頼性のある情報源です。