Stavo lavorando su Project Euler 40 ed ero un po 'preoccupato che non ci fosse il int.Parse(char)
. Non è un grosso problema, ma ho fatto un po 'di domande e qualcuno ha suggerito char.GetNumericValue
. GetNumericValue sembra un metodo molto strano per me:Qual è l'accordo con char.GetNumericValue?
- Prende un char come parametro e restituisce ... un doppio?
- Restituisce -1.0 se il carattere non è '0' a '9'
Allora qual è il ragionamento che sta dietro questo metodo, e il fine di restituire un doppio servite? Ho persino sparato a Reflector e ho guardato InternalGetNumericValue, ma è come guardare Lost: ogni risposta porta solo a un'altra domanda.
Si noti che se si desidera solo convertire una cifra a un int, 'int.Parse (c.ToString())' sarebbe funziona bene Nessun motivo per utilizzare GetNumericValue a meno che non si trovi nella situazione descritta da Adam Sills. O, naturalmente, sottraendo semplicemente "0" dal carattere. – Joren
Sì, ed è quello che sto effettivamente usando, ma la conversione in una stringa e l'analisi in un int sembra un po 'prolisso e/o eccessivo. Potrei anche sottrarre '0' dal char, ovviamente, ma quello sembra un po 'di magic string'y –