如何将字符串值"0x310530"转换为C#中的整数值?
我已经尝试了int.TryParse(甚至int.TryParse与System.Globalization.NumberStyles.Any),但它不起作用.
更新: 似乎Convert.ToInt64或Convert.ToInt32工作而不必删除尾随的"0x":
long hwnd = Convert.ToInt64("0x310530", 16);
Run Code Online (Sandbox Code Playgroud)
文件Convert.ToInt64 Method (String, Int32)说:
"如果fromBase为16,则可以将value参数指定的数字加上"0x"或"0X"前缀."
但是,我更喜欢像TryParse这样不会引发异常的方法.
Han*_*ant 24
int value = (int)new System.ComponentModel.Int32Converter().ConvertFromString("0x310530");
Run Code Online (Sandbox Code Playgroud)
dtb*_*dtb 13
来自MSDN:
NumberStyles.AllowHexSpecifier
表示数字字符串表示十六进制值.有效的十六进制值包括数字0-9和十六进制数字AF和af.使用此样式解析的字符串不能以 "0x"或"&h" 作为前缀.
所以你必须先删除0x前缀:
string s = "0x310530";
int result;
if (s != null && s.StartsWith("0x") && int.TryParse(s.Substring(2),
NumberStyles.AllowHexSpecifier,
null,
out result))
{
// result == 3212592
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31191 次 |
| 最近记录: |