Встречается на собеседованиях • сегодня
В чём разница между классом и структурой
Классы (`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`: Сложные объекты с логикой и наследованием.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы