Интерфесы C#

C Sharp > Интерфесы C#
07.02.2018 17:41:46



Статья:

Объявление интерфейса C#

public interface IWork{ 
void DoWork();
}
 
public interface IWorkGeom : IWork { 
double SolveGeom();
}

Важно: - Это контракт, т.е. должен оставаться неизменным;

- Нет реализации;
- Может включать методы, свойства, события и индексаторы;
- Все элементы по умолчанию public;
- Это ссылочный тип данных.

Реализация интерфейсов

class Star: IWorkGeom {
public void DoWork() {}
public double SolveGeomO {return 0;}
public void Move() {}
}
...
 
Star star = new Star(); 
IWork work = star;

star.

DoWork
SolveGeom
Move

work.
DoWork

Явная реализация интерфейса
public interface IWork{ void Paint(); }
public interface IDraw{ void Paint(); }
class Star: object, IWork, IDraw { 
void IWork.Paint() {}
void IDraw.Paint() {}
}
Важно: - Доступ к методу Paint() возможен только по интерфейсной ссылке;
- Нет модификатора доступа;
- Нет модификаторов abstract, virtual, override, или static;