您正在查看OP代码中的元组。元组在 C# 7.0 之前也可用,但是 C# 7.0 中元组的改进(引入了ValueTuples)意味着,可以对元组的字段使用语义名称,如示例中所示。
(int, string) tst = (0, "Test");
在上面的代码中,元组被解包并分配给tst
变量。这被称为decontructing
元组。
考虑以下来自 OP 的代码
(int, string) tst = (0, "Test");
var (k, b) = tst;
您可以将其结合为
var (k, b) = (0, "Test");
您也可以在用户定义类型中使用解构。例如,考虑以下代码
public class User
{
public string FirstName{get;set;}
public string LastName{get;set;}
public int Age{get;set;}
}
为了支持上述类中的解构,您可以添加如下方法。
public class User
{
public string FirstName{get;set;}
public string LastName{get;set;}
public int Age{get;set;}
public void Deconstruct(out string fName,out string lName,out int age)
{
fName = FirstName;
lName = LastName;
age = Age;
}
}
Deconstruct 方法现在使我们能够在 Class User 中支持 Deconstruction。您现在可以编写类似于 Tuple Deconstruct 的代码。例如,
var user = new User{FirstName = "John", LastName="Doe",Age=50};
var (fName,lName,age) = user;