Встречается на 16% собеседований по C#
В чём разница между классом и структурой
Классы (class) и структуры (struct) в C# различаются по семантике, поведению и использованию:
-
Тип данных:
- Классы — ссылочные типы (хранятся в куче).
- Структуры — значимые типы (хранятся в стеке или внутри других объектов).
-
Наследование:
- Классы поддерживают наследование.
- Структуры не могут наследоваться (но реализуют интерфейсы).
-
Nullability:
- Классы могут быть
null. - Структуры не могут быть
null(кромеNullable<T>).
- Классы могут быть
-
Размер и производительность:
- Структуры эффективны для небольших данных (менее 16 байт).
- Классы лучше для больших или изменяемых данных.
-
Дефолтные значения:
- Классы инициализируются как
null. - Структуры имеют значение по умолчанию (все поля —
default).
- Классы инициализируются как
Пример:
csharp
struct Point { public int X, Y; } // Значимый тип
class Person { public string Name; } // Ссылочный тип
Point p1 = new Point(); // X=0, Y=0 (не null)
Person p2 = new Person(); // Name=nullКогда использовать:
struct: Небольшие, неизменяемые данные (координаты, цвет).class: Сложные объекты с логикой и наследованием.
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы