在C# 7.0中,我可以为我的类声明以下解构函数:
我错过了什么?
public class Customer
{
public string FirstName { get; }
public string LastName { get; }
public string Email { get; }
public Customer(string firstName, string lastName)
{
FirstName = firstName;
LastName = lastName;
}
public void Deconstructor(out string firstName, out string lastName, out string company)
{
firstName = FirstName;
lastName = LastName;
company = "Nop-Templates";
}
public void Deconstructor(out string firstName, out string lastName)
{
firstName = FirstName;
lastName = LastName;
}
}
我认为在解构函数中使用变量的想法,而不是直接返回元组,是为了可以有不同的解构函数重载。然而,我似乎无法将对象解构为三个变量。我只能将其解构为两个变量。
例如,以下代码无法编译:
(string firstName, string lastName, string company) = customer;
我遇到了以下错误:
"无法将包含 '2' 个元素的元组解构为 '3' 个变量。"
但是下面的代码能够正常工作:
(string firstName, string lastName) = customer;
我错过了什么?
Deconstruct
方法。 - Lasse V. Karlsen