class — reference type с наследованием; struct — value type без classic-наследования классов, обычно для небольших данных.
Разбор
- struct реализует interfaces, но не служит базой для class.
- Копирование struct копирует поля.
- Для больших изменяемых моделей чаще class.
- Равенство и семантика передачи различаются.
Итог
struct для компактных значений; class для сущностей и полиморфизма.