Novidades do C# 10: melhorias em Records - utilizando sealed com o método ToString()
Já abordei o uso de Records com o C# 9.0, funcionalidade esta que simplifica em muito a implementação de objetos imutáveis em .NET:
No C# 10.0 essas estruturas também passaram por melhorias. Agora é possível utilizar o modificador sealed em Records que contem com sobrecargas do método ToString().
Ao tentar realizar este tipo de ajuste numa aplicação baseada em .NET 5 + C# 9.0 ocorrerá um erro, como indicado na imagem a seguir:
Já na próxima listagem temos a mesma implementação em uma Console Application baseada no .NET 6 e utilizando esta novidade do C# 10.0 (o modificador sealed com uma sobrecarga de ToString):
O trecho de código a seguir traz exemplos de uso dos records Imposto, ImpostoEstadual e ImpostoMunicipal:
Ao executar esta aplicação teremos o seguinte resultado (já considerando o uso da sobrecarga de ToString):
Este exemplo também foi disponibilizado no GitHub:
https://github.com/renatogroffe/DotNet6_RC2-CSharp10-Records-ToString_Sealed
Abordei essa e outras novidades do C# 10.0 em uma live recente no Canal .NET, a qual pode ser assistida gratuitamente no YouTube: