如何在C#中将以1234这样的十进制数字或以0X1234开头的十六进制数字解析为int?
我尝试过
int.TryParse
和Convert.ToInt32
但似乎这些函数假定您知道要预先解析十进制值还是十六进制值。我想允许我的用户输入两种格式。
是否有任何标准函数可以自行决定输入是十六进制还是十进制格式?还是我必须自己写?
答案 0 :(得分:3)
您可以使用以下代码:
int value = (int)new System.ComponentModel.Int32Converter().ConvertFromString(hexString);
hexString可以是0x1234和1234。它处理十六进制和非十六进制的情况。
答案 1 :(得分:0)
不确定一种独特的方法。但是为什么不使用条件运算符呢?
string input = "0xA3";
int result = input.Contains("0x") ? Convert.ToInt32(input , 16) : Convert.ToInt32(input);