我使用TryParse
将字符串解析为数字。我需要一个用默认值初始化变量的解决方案,所以当TryParse无法转换时,我得到我的默认值。
以下是代码:
long.TryParse(input.Code, out long Code = 123);
//Error CS1525 Invalid expression term '='
我想严格使用C#7输出变量标准。
答案 0 :(得分:10)
虽然out
参数本身不能采用默认值,但您可以使用C#7中的单个表达式实现您想要的操作。您只需将out
参数与三元表达式结合使用:< / p>
var code = long.TryParse(input.Code, out long result) ? result : 123;
答案 1 :(得分:4)
你不能这样做...... .NET运行时不知道long.TryParse
的“成功”或“失败”。它只知道TryParse
具有bool
返回值,并且在TryParse
完成后,out
变量将被初始化。 true
与“result
”和false
之间存在良好价值,“{1}}”中没有任何良好价值。
为了说清楚,你可以:
result
现在?应该何时使用您的默认值?