Sobes.tech
Middle+

Struct дегеніміз не және ол class-тан қалай ерекшеленеді?

sobes.tech AI

AI-дан жауап

C# тілінде struct — бұл мән типі (value type), ал class — сілтеме типі (reference type). Негізгі айырмашылықтар:

  • Сақтау: struct стекте сақталады (егер жергілікті айнымалы болса) немесе объект ішінде inline, class — heap-те, айнымалы сілтемені қамтиды.
  • Өткізу: struct өткізу кезінде көшіріледі, class — сілтеме көшіріледі.
  • Мұрагерлік: struct мұрагерлікті қолдамайды (интерфейстерді жүзеге асырудан басқа), class қолдайды.
  • Конструкторлар: struct үшін шектеу бар — параметрсіз конструктор болмайды, әдепкі бойынша инициализацияланады.

Мысал:

struct Point {
    public int X;
    public int Y;
}

class Person {
    public string Name;
}

Point p1 = new Point { X = 1, Y = 2 };
Point p2 = p1; // көшірме
p2.X = 3; // p1.X өзгермейді, әлі де 1

Person person1 = new Person { Name = "Alice" };
Person person2 = person1; // сілтеме
person2.Name = "Bob"; // person1.Name те өзгереді

struct шағын, өзгермейтін деректер үшін пайдаланылады, онда өнімділік пен жиналмалы қоқыс жинау шығындарын болдырмау маңызды.