Back to questions
Junior — Middle
73
Какие отличия существуют между классом и структурой в программировании?
Companies where asked
Бренд Монитор
appfox
Answer from AI
sobes.tech AI
Основные отличия между классом и структурой в C#:
- Тип данных: Классы — ссылочные типы, структуры — значимые типы.
- Хранение: Классы хранятся в куче, структуры — в стеке (если не являются частью класса).
- Наследование: Классы поддерживают наследование, структуры — нет.
- Конструкторы: Структуры не могут иметь безпараметрический конструктор, классы могут.
- Передача: При передаче структуры в метод создаётся копия, при передаче класса — передаётся ссылка.
Пример:
struct Point {
public int X, 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 = "Иван" };
Person person2 = person1; // ссылка
person2.Name = "Пётр";
// person1.Name тоже изменится на "Пётр"
Выбор между классом и структурой зависит от задачи и требований к производительности и семантике.