Press "Enter" to skip to content

La soluzione ad un piccolo problema di conversione

Non essendo qualcosa che si usa quotidianamente lo scrivo al solito per trovarlo se mi serve.

Un collega mi ha chiesto oggi di aiutarlo con un problema nella conversione di una funzione VB in C#, questa funzione calcola il checksum per una stringa rappresentante dei valori esadecimali che deve poi essere spedita ad una device via seriale.

Il problema era che VB converte “H&F6” in uno short , mentre short.TryParse( “0xF6”, out val) non lo fa.

Il problema è dovuto al fatto che per default TryParse si aspetta una stringa che contiene un numero e un esadecimale virtualmente non lo è.

La soluzione è usare la seguente riga di codice:

val = Int16.Parse("0xF6", System.Globalization.NumberStyles.HexNumber);

Molto facile, ma siccome ci ho perso mezz’ora a trovarla, spero di risparmiarla a qualcun’altro. 😉