我上课了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)
解构需要至少两个变量来解构.
否则,表达式(id) = new Person()在正常赋值和解构赋值之间将是不明确的.
您还可以从代码提供的其他编译器错误中看到这一点:Syntax error, ',' expected.