解构一个参数不起作用

Jos*_*una 4 c# c#-7.0

我上课了Person:

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public void Deconstruct(out int id) { id = Id; }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下代码解构它时:

var (id) = new Person();
Run Code Online (Sandbox Code Playgroud)

编译器说:

无法推断出隐式类型的解构变量'id'的类型.

当有多个参数时,编译器不会说出来.像这样:

public void Deconstruct(out int id, out string name) { id = Id; name = Name; }

var (id, name) = new Person();
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 6

解构需要至少两个变量来解构.

否则,表达式(id) = new Person()在正常赋值和解构赋值之间将是不明确的.

您还可以从代码提供的其他编译器错误中看到这一点:Syntax error, ',' expected.