Executando verificação de segurança...
7

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).

1

Obrigado pelos complementos.

A crítica sobre estruturas é exatamente isso: para quem não sabe o que é, como funciona e quer sair usando por aí. É interessante aprender o conceito de tipo-por-referência e então tipo-por-valor, e entender como eles se relacionam com código de referências, nullables, instâncias e outras coisinhas interessantes que faz um ser bem diferente do outro.

E de facto, eu quase sempre evito usar dynamic, salvo em casos que preciso lidar com tipos genéricos que não compartilham uma abstração comum.

1
1
-4