Bha*_*hat 2 c# data-conversion
我正在尝试从配置文件中读入一堆无符号整数到类中.这些数字可以在base-10(例如:1234)或base-16(例如:0xAB31)中指定.因此strtoul
在C#2.0中寻找等价物.
更具体地说,我对C#函数感兴趣,当函数指示基数或基数作为零传入时,该函数模仿this函数的行为.(在C++下,strtoul
将尝试根据字符串中的前几个字符'猜测'基数或基数,然后继续适当地转换数字)
目前我手动检查string.Substring()
字符串的前两个字符(使用方法)然后调用Convert.ToUInt32(hex, 10)
或Convert.ToUInt32(hex, 16)
根据需要.
我确信必须有更好的方法来处理这个问题,因此这篇文章.更优雅的想法/解决方案或解决方案将是很有帮助的.
好吧,你不需要使用Substring,除非它是十六进制的,但听起来你基本上是以正确的方式做到这一点:
return text.StartsWith("0x") ? Convert.ToUInt32(text.Substring(2), 16)
: Convert.ToUInt32(text, 10);
Run Code Online (Sandbox Code Playgroud)
显然这会为Substring
调用创建一个额外的对象,你可以编写自己的十六进制解析代码来应对这个 - 但除非你真的遇到这种方法的性能问题,否则我会保持简单.
归档时间: |
|
查看次数: |
1107 次 |
最近记录: |