C#6.0中的新功能允许在TryParse方法中声明变量.我有一些代码:
string s = "Hello";
if (int.TryParse(s, out var result))
{
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么?PS:在项目设置中设置C#6.0和.NET framework 4.6.
我在C#7阅读新出的可变功能在这里.我有两个问题:
它说
我们允许"丢弃"作为输出参数,以a的形式
_,让你忽略你不关心的参数:Run Code Online (Sandbox Code Playgroud)p.GetCoordinates(out var x, out _); // I only care about x
问:我想这只是一个信息而不是C#7的新功能,因为我们也可以在C#7.0之前这样做:
var _;
if (Int.TryParse(str, out _))
...
Run Code Online (Sandbox Code Playgroud)
或者我在这里遗失了什么?
当我在同一博客中提到时,我的代码会出错:
~Person() => names.TryRemove(id, out *);
Run Code Online (Sandbox Code Playgroud)
*不是有效的标识符.Mads Torgersen的疏忽我猜?