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