Como Não Ficar Maluco Debugando Código com DataTip

Aquele momento em que você tenta debugar uma aplicação e o DataTip decide mostrar tudo, menos o que você precisa. Olha só:

semDebuggerDisplay

Primeiro, ele mostra o Namespace. Ver as propriedades direto seria fácil demais! Então se prepare para clicar bastante durante o dia. Se sua classe é gigante, com muitas propriedades, prepare o café, porque o debug vai demorar mais que um episódio ruim de série.

Sem notar, você vai beber mais café enquanto tenta fixar propriedades ou usar Breakpoints condicionais.

pin

breakpoint condicional

Essas técnicas resolvem problemas específicos no código. Parece um jogo de "Encontre o conteúdo", sempre pedindo mais café quando você menos espera.

Descobrimos a Solução: DebuggerDisplay

O atributo DebuggerDisplay é a solução para tornar o debug mais fácil.

Esse atributo mostra como um objeto, propriedade ou campo aparece nas janelas de debug do Visual Studio. Pode ser usado em tipos, delegates, properties, fields e até assemblies.

Muito simples! O DebuggerDisplay precisa só de uma string. Essa string substitui o chato Namespace.NomeDaClasse. Como num passe de mágica, o DataTip aparece assim:

DebuggerDisplay

DebuggerDisplay versus ToString()

Agora, uma comparação: DebuggerDisplay vs. ToString(). Veja como funciona.

O DebuggerDisplay é usado quando a IDE está conectada ao processo. Já o ToString() roda independente do modo de execução do seu código.

Se você tiver o ToString() junto com o DebuggerDisplay, quem vence? O DebuggerDisplay leva a melhor, deixando o ToString() de lado.

Fique atento. Usar o ToString() para debug pode causar bugs graves. Pode até ajudar a salvar projetos por aí.

Espero que tenham curtido essas dicas. Deixem suas dificuldades de debug nos comentários, vamos desabafar juntos!

Referências