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