.NET中如何将空字符串解析为long类型0 求简洁内联实现方案
方案1:和你原有逻辑完全等价的内联写法
仅处理空字符串/Null场景,用三元运算符实现:
string example = ""; long parsed_example = long.Parse(string.IsNullOrEmpty(example) ? "0" : example); Console.WriteLine(parsed_example); // => 0
该写法和你写的if分支逻辑完全一致,仅当输入为Null或空字符串时替换为"0"再解析,如果输入是其他非法格式(如字母、特殊符号)仍会抛出FormatException,适合确定输入要么为空/Null、要么为合法数字的场景。
方案2:适配所有非法输入的稳妥写法
使用long.TryParse实现,所有非法输入都会默认返回0,不会抛出异常:
string example = ""; long parsed_example = long.TryParse(example, out long result) ? result : 0; Console.WriteLine(parsed_example); // => 0
该写法不需要额外做前置判断,适用场景更广,C# 7.0及以上版本支持直接在参数中声明out变量,无需提前定义。
内容的提问来源于stack exchange,提问作者julian bechtold
相关产品推荐
相关产品推荐

