Oggi mi è stato presentato un problema molto sgradevole e non so bene dove chiedere questo, ma spero che sia ok.
Quindi ho la seguente stringa: "
(almeno è così che appare in Visual Studio). Se apri lo stesso file nel blocco note ++, appare come questo: %code% . quindi sì, ho raggiunto un punto in cui ho bisogno di controllare una stringa che ha caratteri non stampabili. Il problema è che la stringa con cui sto confrontando è hardcoded e verrebbe visualizzata in questo modo: "
"ASCIIEncoding.Default.GetString(new byte[]{0, 1});
SOH"
switch (s)
{
case "switch (s)
{
case "%pre%%pre%":
Console.WriteLine("Crypto method 00");
break;
case "%pre%":
Console.WriteLine("Crypto method 01");
break;
case "%pre%":
Console.WriteLine("Crypto method 02");
break;
case "%pre%":
Console.WriteLine("Crypto method 03");
break;
default:
Console.WriteLine(s);
break;
}
%pre%":
Console.WriteLine("Crypto method 00");
break;
case "%pre%":
Console.WriteLine("Crypto method 01");
break;
case "%pre%":
Console.WriteLine("Crypto method 02");
break;
case "%pre%":
Console.WriteLine("Crypto method 03");
break;
default:
Console.WriteLine(s);
break;
}
codice di esempio completo può essere trovato su pastbin per il prossimo mese
Ma il codice non è importante , questo, la visualizzazione di questo codice, è orribile e questo è il problema. Non posso commettere qualcosa del genere perché nessuno saprà cosa sta succedendo.
Ovviamente potrei aggiungere commenti, così i miei collaboratori sapranno cosa sta succedendo, ma a me non sembra la soluzione giusta. quindi la mia domanda qual è la soluzione corretta per creare codice comprensibile in questa situazione? Chiedo ai miei colleghi di riscrivere il codice per farlo funzionare con gli array di byte? Lo tengo semplicemente in questo modo?
Un modo per risolvere questo problema nel codice sarebbe: %code% ma questo 'hack' in realtà non lo rende più comprensibile.
Per chiarire, io sono non in cerca di una correzione del codice , posso pensare a diversi (come detto sopra) Sto cercando consigli su come gestirlo o forse un modo per assicurarmi l'editor (ad esempio Visual Studio) si distingue tra loro.
Alcuni contesti extra
Un pezzo di codice vecchio che gestisce la connessione TCP riceve i dati (come dovrebbe) e quindi restituisce una stringa, utilizza la codifica ASCII per creare una stringa dal byte ricevuto [].
Ora siamo arrivati a un punto in cui più in alto abbiamo bisogno di impostare / leggere alcuni byte di stato che, a causa del modo in cui i messaggi provenienti dal livello TCP generano stringhe illeggibili.
È possibile riscrivere il TCP per inviare solo matrici di byte [], ma questo richiederà più tempo di quanto chiunque sia disposto a inserire.