Встречается на собеседованиях • сегодня

В чём разница между классом и структурой

Классы (`class`) и структуры (`struct`) в C# различаются по семантике, поведению и использованию: 1. **Тип данных**: - Классы — ссылочные типы (хранятся в куче). - Структуры — значимые типы (хранятся в стеке или внутри других объектов). 2. **Наследование**: - Классы поддерживают наследование. - Структуры не могут наследоваться (но реализуют интерфейсы). 3. **Nullability**: - Классы могут быть `null`. - Структуры не могут быть `null` (кроме `Nullable`). 4. **Размер и производительность**: - Структуры эффективны для небольших данных (менее 16 байт). - Классы лучше для больших или изменяемых данных. 5. **Дефолтные значения**: - Классы инициализируются как `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`: Сложные объекты с логикой и наследованием.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы