Legal, entendi, mas vou dar um pouco mais de contexto.
struct
são ótimas, e por padrão eu penso em usá-las. Mas grande parte dos tipos acabo usando class
. A primeira é mais eficiente em certo cenário, mas é menos poderosa, e tem muitos casos que precisa desse poder. Se a estrutura for muito grande (não é o caso do exemplo, está quase no limite) e tiver que ficar passando o objeto para todo lado será bem menos eficiente. A semãntica de uso é diferente. Se a pessoa não entender bem, de fato a classe é mais fácil de usar.
Tem casos que precisa usar o tipo explicitamente. Tem casos que fica mais legível. O exemplo é um bom uso, mas não tem mal fazer de outra forma. Na verdade minha recomendação atual está sendo fazer o oposto.
CarroModel carro = new();
Curto, legível, linear com os vários casos que o var
não funciona e mesma eficiência.
Interfaces são extremamente úteis, e realmente dynamic
é de uso extremamente pontual (caso contrário C# é a linguagem errada para a tarefa ou o design está errado). Mas tem gente que abusa delas, em alguns casos porque querem seguir SOLID a todo custo, sem contexto e sem entender bem os princípios, ou seja, não adota por necessidade, adota por modinha.
Faz sentido para você?
Espero ter ajudado.
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).