A tarefa de criar códigos numéricos seqüenciais para numerar mensagens no código-fonte no Visual Studio (ex. C #)

Olá pessoal


Deixe-me compartilhar com você um pequeno truque de vida que venho usando há alguns anos - criando códigos numéricos seqüenciais para mensagens de texto no código-fonte no processo de edição direta do código-fonte no Visual Studio:

imagem

Comecei a pensar nessa tarefa quando várias dúzias de mensagens para os manipuladores de usuário / erro / exceção começaram a se "formar" no código e tornou-se impossível tolerar o fato de que, ao receber a próxima mensagem em tempo de execução, ficava difícil navegar de onde vinha. Havia um forte desejo de numerar todas as mensagens com índices seqüenciais que seriam exibidos no início de cada mensagem, mas para que essa sequência pudesse ser criada ao digitar o código-fonte usando apenas o teclado , em tempo real (para não se distrair do processo de codificação).

imagem

Isso é feito da seguinte maneira:

  1. Crie uma enumeração para códigos de erro.
  2. Sintaxe especial para códigos na enumeração: "_number". (no início do número, há um sublinhado, porque a enum ainda requer nomes simbólicos).
  3. O "digitalizador" do formato "_número" no número real.
  4. A mágica de incrementar um código numérico em tempo real.

1.2:


/// " "    public enum MCodes{ _000, _001, _002, } 

3: "Digitalizador" do formato "_número" no número real


 static class _MCodeExtensions{ /// mini formar error message -    . public static string mfem(this MCodes mcode) { //string str = $"{nameof(rcode)} = {rcode}, {nameof(mcode)} = {mcode}"; int val = Int32.Parse(mcode.ToString().Substring(1)); string str = $"{nameof(mcode)} = {val}"; return str; } } 

4. Magia


A mágica é usar os recursos do IntelliSense for Visual Studio:

imagem


De fato, essas ações são executadas rapidamente (câmera lenta):

imagem


Use


Os números sublinhados “geralmente” raramente são usados ​​no código-fonte; portanto, encontrar esse número usando Ctrl-F (pesquisa no arquivo atual) ou Ctrl-Shift-F (pesquisa em todo o projeto) indicará com precisão o local do erro.

(Obviamente, você pode abrir enum, encontrar o código, pressionar Shift-F12, mas este é o caminho mais longo desde a descarga ...)

Desvantagens


1. Se você copiar trechos de código com códigos de erro inseridos, naturalmente, os códigos de erro não serão mais exclusivos. Para combatê-los, você precisa revisar periodicamente os MCUs da enumeração, verificando se algum código é usado mais de uma vez
imagem


Os atalhos F12 e Shift-F12 ajudam muito.

2. Você pode cometer um erro no formato discado e não escrever "_número", mas outra coisa que não pode ser convertida em um número. Sim, haverá uma exceção.

Conclusão


A numeração de mensagens, especialmente sobre erros, às vezes fornece um serviço inestimável na depuração e localização dos motivos para a aparência de mensagens diferentes. Espero que este método ajude a simplificar esta tarefa.

Parece que este é o mínimo de movimentos do corpo?

PS


Esta é a minha atitude extremamente subjetiva em relação aos códigos de erro, mas de repente isso o ajudará em algo. Ele pode ser usado não apenas para incrementar códigos de erro, mas também para outras seqüências. Naturalmente, personalização da solução ao seu gosto.

O motivo para usar o formato numérico na enum na forma de "número" é que int está realmente oculto atrás da enum e o membro da enum é numerado desde o início da sequência (pode ser atribuído sintaticamente, mas isso não é feito automaticamente através do IntelliSense, e você não precisa gastar tempo com isso) Eu quero). E também o significado deste membro depende da localização. E se a localização mudar, o número já será diferente. Portanto, o próprio valor é ignorado em qualquer lugar do código.

Um pouco de teoria sobre Enum Enums .

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


All Articles