Sobes.tech
Junior

Какво е интерфейс в C#?

sobes.tech AI

Отговор от AI

Интерфейсът в C# е договор, който определя набор от членове (методи, свойства, събития, индексатори), но не съдържа тяхната реализация. Класовете и структурите могат да реализират един или повече интерфейси, като се задължават да предоставят реализация за всички членове на интерфейса.

Ключови характеристики:

  • Позволява постигане на полиморфизъм.
  • Определя поведение, а не състояние.
  • Може да съдържа само декларации на членове без модификатори за достъп (неявно public).
  • Не може да бъде създаден директно (инстанциран).
  • Поддържа множествено наследяване (един клас може да реализира няколко интерфейса).
  • Въведени са интерфейси по подразбиране с .NET Core 3.0+, които позволяват предоставяне на реализация на членове.

Пример:

// Определяне на интерфейс
public interface ICustomer
{
    string GetFullName(); // Обявяване на метод
    int CustomerId { get; } // Обявяване на свойство
}

// Клас, реализиращ интерфейса
public class CompanyCustomer : ICustomer
{
    public int CustomerId { get; set; }
    public string CompanyName { get; set; }
    public string ContactPerson { get; set; }

    public string GetFullName()
    {
        return $"{CompanyName} ({ContactPerson})";
    }
}