freeCodeCamp/guide/russian/csharp/interface/index.md

59 lines
2.6 KiB
Markdown
Raw Normal View History

2018-10-12 20:00:59 +00:00
---
2018-10-19 12:53:51 +00:00
title: Interface
2018-10-12 20:00:59 +00:00
localeTitle: Интерфейс
---
* * *
Интерфейс похож на класс или структуру, но без реализации для его членов. Интерфейс объявляет контракт или поведение, которое должны иметь классы реализации. Он может объявлять только свойства, методы и события без модификаторов доступа NO.
Все объявленные участники должны быть реализованы в классе, предназначенном для ангаров, иначе будет ошибка компиляции. в качестве условного обозначения мы будем отмечать интерфейс с буквой I при запуске (IMyInterface || IUserOptions). Вы определяете интерфейс, используя ключевое слово интерфейса.
Все члены интерфейса: неявно абстрактно, неявно публичный, не может объявить модификатор доступа, такой как защищенный, внутренний частный и т. д. ...
Интерфейс может:
* Наследовать от других интерфейсов.
* Наследовать от нескольких интерфейсов одновременно
* Содержит только методы, свойства, события и индексаторы.
Интерфейс не может:
* Наследовать от класса.
* Имейте реализацию.
* Имеют модификаторы доступа, кроме публики.
## \* Будь создан.
Использование интерфейсов позволяет нам изменить нашу реализацию в нашем проекте, не нарушая других частей, и только нужно изменить одно место, где создается объект.
Пример интерфейса:
```csharp
2018-10-19 12:53:51 +00:00
public Interface IUserFavoriteFood
{
void AddFood();
Task<User> EatFavoriteFood(int id);
}
2018-10-12 20:00:59 +00:00
```
* * *
Наследование интерфейсов и их реализация:
```csharp
2018-10-19 12:53:51 +00:00
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.
}
}
2018-10-12 20:00:59 +00:00
```