如何将默认值初始化为C#7输出变量?

时间:2017-05-17 10:03:13

标签: c# c#-7.0

我使用TryParse将字符串解析为数字。我需要一个用默认值初始化变量的解决方案,所以当TryParse无法转换时,我得到我的默认值。

以下是代码:

long.TryParse(input.Code, out long Code = 123);
//Error CS1525  Invalid expression term '=' 

我想严格使用C#7输出变量标准。

2 个答案:

答案 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

现在?应该何时使用您的默认值?