Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
long.Parse()C#_C#_.net 3.5 - Fatal编程技术网

long.Parse()C#

long.Parse()C#,c#,.net-3.5,C#,.net 3.5,如何将字符串(比如“-100100”)转换为C#中的长字符串 我现在有一行代码是 long xi = long.Parse(x, System.Globalization.NumberStyles.AllowThousands); 但当x是一个“负数”时,这就中断了 我的方法: long xi = long.Parse("-100,253,1", System.Globalization.NumberStyles.AllowLeadingSign & System.Globaliza

如何将字符串(比如“-100100”)转换为C#中的长字符串

我现在有一行代码是

long xi = long.Parse(x, System.Globalization.NumberStyles.AllowThousands);
但当x是一个“负数”时,这就中断了

我的方法

long xi = long.Parse("-100,253,1", 
System.Globalization.NumberStyles.AllowLeadingSign & System.Globalization.NumberStyles.AllowThousands);
是错的,因为它坏了。

试试看:

long xi = long.Parse(x, System.Globalization.NumberStyles.AllowThousands | System.Globalization.NumberStyles.AllowLeadingSign);
这很可能是因为您正在声明标志,您可能需要声明所有可能被击中的标志。 我刚刚用问题中给定的字符串值确认了这段代码在测试项目中工作。让我知道它是否符合您的要求。在单个参数中声明多个标志时,使用|而不是&

编辑:
在“枚举类型作为位标志”标题下找到不同位运算符的解释(这比我想象的更难找到)。

我将使用TryParse而不是Parse,以避免异常,即:

long xi;
if (long.TryParse(numberString, System.Globalization.NumberStyles.AllowThousands | System.Globalization.NumberStyles.AllowLeadingSign, null, out xi))
    {
        // OK, use xi
    }
    else
    {
        // not valid string, xi is 0
    }
在你的“解析”中稍有输入错误的应该是“TryParse”,否则答案会更好。真遗憾,我觉得没有必要向他指出特里帕斯。