Recentemente mi sono trovato a dover (sì, a bisogno) definire dichiarazioni assurdamente lunghe switch
e dichiarazioni enum
in codice C#, ma mi chiedo cosa ritengano le persone il modo migliore per dividerle in sottosezioni logiche. Nella mia situazione, sia i valori di enum che i casi (che sono basati sui valori di enum) hanno raggruppamenti abbastanza chiari, tuttavia sono un po 'incerto su come rispecchiare questo codice.Utilizzeresti le regioni all'interno di dichiarazioni di switch/enum lunghi?
Si noti che nel mio codice, ho circa 5 gruppi di valori compresi tra 10 e 30 valori/casi ciascuno.
Le tre opzioni vagamente ragionevoli posso prevedere sono:
- Definire
#region
blocchi intorno tutti i gruppi logici di valori casi/enum all'interno della dichiarazione (opzionalmente separati da righe vuote). - Commenta ogni gruppo con il suo nome, con una riga vuota prima di ogni commento del nome di gruppo.
- Non fare nulla - semplicemente lascia l'interruttore/enum come un elenco enorme di casi/valori.
Quale preferisci? Tratteresti separatamente enumerazioni e interruttori? (Questo sembrerebbe un po 'strano per me.) Ora, non direi che c'è una risposta giusta/sbagliata a questa domanda, anche se sarei comunque molto interessato a sentire quale sia il consensus generale delle opinioni.
Nota 1: Questa situazione dove potrei potenzialmente avere una dichiarazione estremamente lunga enum di 50/100 + valori è purtroppo inevitabile (e allo stesso modo con l'interruttore), dal momento che sto cercando di scrivere un lexer (tokeniser), e questo sembrerebbe quindi l'approccio più ragionevole per diversi motivi.
Nota 2: Sono pienamente consapevole del fatto che esistono già diverse domande duplicate sulla questione se utilizzare le regioni nel codice generale (per le classi di strutturazione, soprattutto), ma sento che la mia domanda qui è molto più specifico e hasn ancora stato affrontato
ho appena modificato la mia risposta. Spero che aiuti :) –