Comente o código: small life hack

Apesar da simplicidade (e, em geral, da trivialidade, se você pensar a respeito) da solução descrita, eu a deparei puramente por acaso, enquanto decorava com um comentário o programa finalizado, pronto para entrega.

Na prática de programação, ocorre regularmente uma situação em que, durante o desenvolvimento e a depuração, é necessário ativar um código e desativar outro. É fácil fazer isso com construções especiais como #if true ... #else ... #endif , alterando true para false ou recorrendo a condições mais sofisticadas. No entanto, esse design não permite a criação de mais de duas seções alternativas de código.

Em idiomas que suportam um comentário como /* ... */ c, usando uma construção um pouco fora do padrão /**/ ... /*/ ... /*/ ... /**/ você pode criar seções de código arbitrariamente alternadas que alternadamente, liga e desliga com apenas um espaço no primeiro (início) dos comentários.

Por exemplo:

 /**/ Console.Write("1"); /*/ Console.Write("2"); /*/ Console.Write("3"); /*/ Console.Write("4"); /**/ Console.Write("5"); 

Quando executado, esse código gera a string "135" no console. Ou seja, todos os operadores de saída ímpares serão executados - e o último, que já está fora de toda a estrutura. Mas se você inserir um espaço (ou, estritamente falando, qualquer caractere, exceto um asterisco) no comentário inicial entre o segundo asterisco e a barra, o mesmo código exibirá a sequência "245" : apenas operadores serão executados e, novamente, o último já está lá fora. (UPD: obrigado FluffyMan por apontar o erro).

A sintaxe dos comentários do separador é extremamente rigorosa: você não pode adicionar ou adicionar nada à construção /*/ , isso destruirá sua funcionalidade. A sintaxe dos comentários iniciais e finais, pelo contrário, é completamente arbitrária. Pode ser minimalista para /**/ , ou pode conter qualquer comentário - legal no sentido do idioma -. A partir do qual fica claro que os comentários iniciais e finais são estritamente necessários e que é simplesmente impossível usar um comentário legal como /* ... */ dentro da própria estrutura, porque ele se tornará imediatamente uma parada para toda a sequência anterior de separadores de comentários /*/ e um início para toda a sequência subsequente deles. Mas o uso significativo dessas inserções pode ser útil.

Comentários de linha única // não afetam a funcionalidade.

Dixi :)

Source: https://habr.com/ru/post/pt434300/


All Articles