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 шағын, өзгермейтін деректер үшін пайдаланылады, онда өнімділік пен жиналмалы қоқыс жинау шығындарын болдырмау маңызды.