59 lines
2.6 KiB
Markdown
59 lines
2.6 KiB
Markdown
![]() |
---
|
|||
|
title : Interface
|
|||
|
localeTitle: Интерфейс
|
|||
|
---
|
|||
|
* * *
|
|||
|
|
|||
|
Интерфейс похож на класс или структуру, но без реализации для его членов. Интерфейс объявляет контракт или поведение, которое должны иметь классы реализации. Он может объявлять только свойства, методы и события без модификаторов доступа NO.
|
|||
|
|
|||
|
Все объявленные участники должны быть реализованы в классе, предназначенном для ангаров, иначе будет ошибка компиляции. в качестве условного обозначения мы будем отмечать интерфейс с буквой I при запуске (IMyInterface || IUserOptions). Вы определяете интерфейс, используя ключевое слово интерфейса.
|
|||
|
|
|||
|
Все члены интерфейса: неявно абстрактно, неявно публичный, не может объявить модификатор доступа, такой как защищенный, внутренний частный и т. д. ...
|
|||
|
|
|||
|
Интерфейс может:
|
|||
|
|
|||
|
* Наследовать от других интерфейсов.
|
|||
|
* Наследовать от нескольких интерфейсов одновременно
|
|||
|
* Содержит только методы, свойства, события и индексаторы.
|
|||
|
|
|||
|
Интерфейс не может:
|
|||
|
|
|||
|
* Наследовать от класса.
|
|||
|
* Имейте реализацию.
|
|||
|
* Имеют модификаторы доступа, кроме публики.
|
|||
|
|
|||
|
## \* Будь создан.
|
|||
|
|
|||
|
Использование интерфейсов позволяет нам изменить нашу реализацию в нашем проекте, не нарушая других частей, и только нужно изменить одно место, где создается объект.
|
|||
|
|
|||
|
Пример интерфейса:
|
|||
|
|
|||
|
```csharp
|
|||
|
public Interface IUserFavoriteFood
|
|||
|
{
|
|||
|
void AddFood();
|
|||
|
Task<User> EatFavoriteFood(int id);
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
* * *
|
|||
|
|
|||
|
Наследование интерфейсов и их реализация:
|
|||
|
|
|||
|
```csharp
|
|||
|
public class UserHungry : IUserFavoriteFood
|
|||
|
{
|
|||
|
public AddFood()
|
|||
|
{
|
|||
|
// Implementation:
|
|||
|
// A method to add food.
|
|||
|
}
|
|||
|
|
|||
|
public Task<User> EatFavoriteFood(int id)
|
|||
|
{
|
|||
|
// Implementation:
|
|||
|
// A method to Eat food by id.
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
```
|