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})";
    }
}