Novidades do C# 11: Parameter null-checking

Renato Groffe
3 min readMar 7, 2022

--

Neste novo artigo dou continuidade à série sobre novidades previstas para o C# 11, desta vez abordando a funcionalidade chamada de Parameter null-checking.

ATENÇÃO

Este recurso provavelmente não será liberado com o lançamento do .NET 7. Maiores detalhes nos links:

CA1062 is thrown after updating to !! parameter null checking | Stack Overflow

C# Language Design Meeting for April 6th, 2022 | GitHub

Caso ainda não tenha lido o primeiro artigo desta série e os conteúdos que comecei a produzir sobre .NET 7 (ou mesmo deseje revê-los), deixo aqui os links de tais posts:

Novidades do C# 11: primeiros passos, melhorias em String Interpolation

.NET 7: primeiros testes com o Preview 1

Supondo um código como o apresentado na listagem a seguir, em que se faz uso do método Show de MessageHelper e há um tratamento para exceções do tipo ArgumentException:

Na implementação de Show em MessageHelper temos uma validação verificando se o valor do parâmetro message é nulo, a fim de retornar uma ArgumentException em casos como esses:

Podemos refatorar este código, empregando o operador !! (Parameter null-checking) após o nome de um parâmetro como alternativa para efetuar tais verificações de valores nulos. Com isso estamos dispensados do uso da combinação if/throw com ArgumentException:

Como resultado da execução deste exemplo baseado no Preview 1 do .NET 7 temos:

Na próxima listagem está uma variação da classe MessageHelper com uma implementação de Show empregando uma lambda expression, em uma Console Application criada com o .NET 6 e na qual foi habilitado o uso do C# 11:

O resultado da execução desta segunda aplicação está na próxima imagem:

Estes 2 exemplos utilizando Parameter null-checking com o .NET 6 e o .NET 7 foram disponibilizados no GitHub:

https://github.com/renatogroffe/CSharp11-ParameterNullChecking

E termino este post com um convite…

Nesta segunda dia 07/03 às 21:00 horário de Brasília — teremos mais um evento online e gratuito no canal Canal .NET.

Nesta live serão abordadas dicas, truques e novidades no Microsoft Azure visando simplificar a implementação de aplicações .NET e ASPNET Core na nuvem!

Azure API Management, Azure Key Vault, Azure Locks e muito mais!

Palestrantes:

- Renato Groffe (Microsoft MVP, MTAC)
- Ewerton Rodrigues Jordão (Microsoft MVP)
- Diego Moreira Matos (Microsoft MVP)

Para participar faça sua inscrição no link a seguir, a transmissão acontecerá via YouTube:

https://bit.ly/live-dotnet-azure-dicas

--

--

Renato Groffe
Renato Groffe

Written by Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker

Responses (1)