C#7的解构
C#7的解构
努力,奋斗
C#7提供的解构功能需要和元组配合使用,这里的元组不是Tuple类型,而是ValueTuple类型。
我们这里提供一个示例了解一下这个功能:
class User
{
public User(string name, string sex, int age)
{
Name = name;
Sex = sex;
Age = age;
}
public string Name { get; }
public string Sex { get; }
public int Age { get; }
public void Deconstruct(out string name, out string sex)
{
name = Name;
sex = Sex;
}
public void Deconstruct(out string name, out string sex, out int age)
{
name = Name;
sex = Sex;
age = Age;
}
}
}
class Program
{
static void Main(string[] args)
{
(string name, string sex, int age) = new User("wallee", "1", 19);
Console.WriteLine($"{name},{sex},{age}");
}
}
根据以上代码我们说明解构的使用说明:
1、定义类解构使用固定的关键字Deconstruct,方法参数需要使用out表明在离开Deconstruct之前必须对参数进行赋值。out参数必须。
2、需要使用元组类型来接受解构结果。
3、解构方法可以重载。
除此以外,元组也支持解构,语法是:
(string name, string sex, int age) = new User("wallee", "1", 19);
Console.WriteLine(name);
Console.WriteLine(sex);
Console.WriteLine(age);
编辑于 2021-12-07 15:13
漫思