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

59 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
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.
}
}
```