我是C#的新手,这个测试用例总是失败.l_sID的值是5509df4d0d557e15aca17902.它是一个十六进制值,我试图用它来匹配它.我知道它会失败,但我应该通过这个测试?
我尝试使用BigInteger,但显示错误.
无法找到类型或命名空间名称"BigInteger"(当我执行BigInteger l_lID = 0时,您是否缺少using指令或程序集引用;而不是long l_lID = 0;
BigInteger l_lID= 0;
if (!BigInteger.TryParse(l_sID, out l_lID))
throw new Exception("Failed to Upload File ");
Run Code Online (Sandbox Code Playgroud)
5509df4d0d557e15aca17902
此十六进制值为24位,太大而无法解析为64位整数.
以供参考:
我知道它会失败,但我应该通过这个测试?
如果不更改目标数据类型或输入值,则无法执行任何操作.
如果使用较小的十六进制数,则需要使用允许指定数字样式的TryParse重载.
bool result = Int64.TryParse(stringToConvert, NumberStyles.HexNumber,
CultureInfo.InvariantCulture, out number);
Run Code Online (Sandbox Code Playgroud)
我尝试使用BigInteger,但显示错误.
如果指定NumberStyle,BigInteger应该可以在.NET 4.0及更高版本中正常工作
bool result = BigInteger.TryParse(hexString,
NumberStyles.AllowHexSpecifier,
null, out number))
Run Code Online (Sandbox Code Playgroud)
无法找到类型或命名空间名称"BigInteger"(当我执行BigInteger l_lID = 0时,您是否缺少using指令或程序集引用;而不是long l_lID = 0
您需要将一个程序集引用添加到System.Runtime.Numerics(在System.Runtime.Numerics.dll中)并添加using System.Numerics;到C#文件的顶部.