У меня есть следующий код:Преобразование шестнадцатеричной строки в динамический примитивный тип
string hexString = "0x00000004";
Type hexType = typeof(Int32);
object o = Convert.ChangeType(hexString, hexType);
Который бросает System.FormatException как только он выполнен в виде, Apparantly, Convert.ChangeType не может работать с шестнадцатеричным значения.
Мои другие альтернативы используют либо из них:
- Int32 .Parse
- Преобразовать. ToInt32
Однако, поскольку они применяются для определенного типа, я должен буду использовать переключатель/отражение, чтобы выбрать правильную функцию для правильного типа.
Я не очень взволнован ни одним из этих вариантов. Есть ли что-нибудь еще, что я могу сделать?
@VitalyB: Отрицательные числа шестнадцатеричных являются уродливым углом так, потому что они не представлены с '-' знак (основание 16) а в дополнении «Два». Это означает, что вам нужно проанализировать строку, используя тот же тип, что и исходное значение. – dtb
Я надеялся на что-то более встроенное. Ну, я думаю, я пойду с этим. Благодаря! – VitalyB