Novidades do .NET 9: melhorias em Debug.Assert
O método Assert da classe Debug (namespace System.Diagnostics) permite incluir checagens a nível de código, com as mesmas sendo executadas durante o debugging de uma aplicação (em modo Release tais verificações são automaticamente ignoradas). Essa capacidade está presente já há algum tempo na plataforma .NET, representando uma alternativa bastante interessante para cenários mais avançados de depuração de aplicações.
Vale destacar que Debug.Assert conta com sobrecargas que permitem especificar uma mensagem descritiva, além da possibilidade de não se indicar mensagem alguma. O .NET 9 traz uma melhoria relacionada a esta capacidade, gerando como saída a representação textual da condição especificada em Debug.Assert caso não conste uma mensagem na chamada a este método.
Partindo do exemplo apresentado na listagem seguinte:
E considerando a instrução:
Debug.Assert(int.TryParse(input, out var number) && number > 0);
Ao informar uma sequência de texto (abcd) como entrada, a chamada a Debug.Assert produzirá um erro em que constará a condição fornecida como parâmetro à mesma:
O mesmo tipo de comportamento também está previsto para um valor negativo (-10):
Já no próximo print podemos observar a saída produzida em um cenário sem erros (número inteiro maior do que zero):
Em .NET 8 esta mesma implementação com Debug.Assert não geraria uma saída com a condição checada, por mais que tal validação levasse a uma falha:
Disponibilizei este exemplo no GitHub:
https://github.com/renatogroffe/DotNet9-ConsoleApp-DebugAssert
Caso achem útil esta solução, peço por favor um ⭐️ no repositório apoiando. Fica também o convite para que vocês me sigam lá no GitHub!