interface (odwołanie w C#)
Interfejs zawiera tylko podpisy metod, właściwości, zdarzeń lub indeksatorów.Klasa lub struktura, która implementuje interfejs musi implementować elementy członkowskie interfejsu, które są określone w definicji interfejsu.W poniższym przykładzie, klasa ImplementationClass musi implementować metodę o nazwie SampleMethod, która nie przyjmuje parametrów i zwraca void.
Aby uzyskać więcej informacji i przykładów, zobacz Interfejsy (Przewodnik programowania w języku C#).
Przykład
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();
}
}
Interfejs może być elementem członkowskim przestrzeni nazw lub klasy i może zawierać podpisy następujących elementów:
Interfejs może dziedziczyć z jednego lub z kilku interfejsów podstawowych.
Kiedy podstawowy typ listy zawiera klasę podstawową i interfejsy, klasa podstawowa musi znajdować się na pierwszym miejscu listy.
Klasa, która implementuje interfejs, może jawnie implementować elementy członkowskie tego interfejsu.Jawne implementowane elementów członkowskich nie jest dostępne za pośrednictwem wystąpienia klasy, ale tylko za pośrednictwem wystąpienia interfejsu.
Aby uzyskać bardziej szczegółowe informacje i przykłady kodu jawnej implementacji interfejsu, zobacz Implementacja interfejsu jawnego (Przewodnik programowania w języku C#).
Poniższy przykład demonstruje implementację interfejsu.W tym przykładzie, interfejs zawiera deklarację właściwości a klasa zawiera implementację.Dowolne wystąpienie klasy, która implementuje IPoint posiada właściwości liczby całkowitej x i 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
Specyfikacja języka C#
Aby uzyskać więcej informacji, zobacz Specyfikacja języka C#. Specyfikacja języka jest ostatecznym źródłem informacji o składni i użyciu języka C#.
Zobacz też
Informacje
Interfejsy (Przewodnik programowania w języku C#)
Używanie właściwości (Przewodnik programowania w języku C#)
Używanie indeksatorów (Przewodnik programowania w języku C#)
Interfejsy (Przewodnik programowania w języku C#)
Koncepcje
Przewodnik programowania w języku C#