Ключевое слово interface
Ключевое слово interface описывает контракт:
сигнатуры методов, свойств и других членов без
обязательной реализации. Класс или структура
реализует интерфейс и предоставляет тело для каждого
члена. Переменная типа интерфейса может ссылаться
на любой подходящий объект.
Синтаксис
interface Имя
{
тип Член { get; set; }
void Метод();
}
Пример
Давайте реализуем интерфейс в классе:
using System;
interface IPrint
{
void Print();
}
class Message : IPrint
{
public string Text;
public void Print()
{
Console.WriteLine(Text);
}
}
class Program
{
static void Main()
{
IPrint item = new Message { Text = "abcde" };
item.Print();
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте реализуем интерфейс в структуре:
using System;
interface ILength
{
int GetLength();
}
struct TextData : ILength
{
public string Text;
public int GetLength()
{
return Text.Length;
}
}
class Program
{
static void Main()
{
ILength data = new TextData { Text = "12345" };
Console.WriteLine(data.GetLength());
}
}
Результат выполнения кода:
5
Пример
Давайте проверим тип объекта через is:
using System;
interface IMark { }
class Node : IMark { }
class Program
{
static void Main()
{
object obj = new Node();
Console.WriteLine(obj is IMark);
}
}
Результат выполнения кода:
True