编程语言
首页 > 编程语言> > c# – out var _和out _ difference?

c# – out var _和out _ difference?

作者:互联网

参见英文答案 > C#7: Underscore ( _ ) & Star ( * ) in Out variable                                    4个
在C#7中,我们可以这样做:

byte.TryParse(p.Value, out _)

或者像这样

byte.TryParse(p.Value, out var _)

有什么不同吗?

解决方法:

与其他人在评论中所说的相反:不,没有差异.它们都产生完全相同的IL.

byte.TryParse(p.Value, out _);
Console.WriteLine(_);

byte.TryParse(p.Value, out var _);
Console.WriteLine(_);

将使用C#7生成编译器错误,因为不打算使用_.

_的用法不仅限于out参数,也可以用于返回(正如Evk指出的那样)

byte.TryParse(p.Value, out var _); // I don't care about the out variable
_ = SomeMethod(); // I don't care about the return value

有关省略参数here的大部分内容都有很好的答案.

备注:我更倾向于_ over out var _,因为out _和out var legalVariableName之间存在明确的语法区别.

编辑

显然我不太对劲.有一些微妙的差异,参见Ben Voigts answer.

标签:c,var,c-7-0,out
来源: https://codeday.me/bug/20190611/1216312.html