相关疑难解决方法(0)

TryParse没有var param

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# c#-6.0 c#-7.0

90
推荐指数
3
解决办法
3万
查看次数

C#7:Out变量中的下划线(_)和星号(*)

我在C#7阅读新出的可变功能在这里.我有两个问题:

  1. 它说

    我们允许"丢弃"作为输出参数,以a的形式_,让你忽略你不关心的参数:

    p.GetCoordinates(out var x, out _); // I only care about x
    
    Run Code Online (Sandbox Code Playgroud)

    问:我想这只是一个信息而不是C#7的新功能,因为我们也可以在C#7.0之前这样做:

    var _;
    if (Int.TryParse(str, out _))
    ...
    
    Run Code Online (Sandbox Code Playgroud)

    或者我在这里遗失了什么?

  2. 当我在同一博客中提到时,我的代码会出错:

    ~Person() => names.TryRemove(id, out *);
    
    Run Code Online (Sandbox Code Playgroud)

    *不是有效的标识符.Mads Torgersen的疏忽我猜?

c# c#-7.0

69
推荐指数
4
解决办法
2万
查看次数

标签 统计

c# ×2

c#-7.0 ×2

c#-6.0 ×1