C#-结构函数Construct语法糖

发布时间 2023-03-27 10:23:17作者: 派大没有星

C#7.0新增的解构函数语法糖

1.解析元组

(var name,var age)=GetUser();

var name;
int age;
(name,age)=GetUser();

public static (string name,int age) GetUser()
{
    return ("Kevin"1);
}

2.解构对象

class User
{
  public string Name;
  public int Age;
  public string Sex;

  //需要在class里面添加一个解构函数Deconstruct
  //解构函数支持重载,但不支持相同数量参数的重载
  public void Deconstruct(out string name,out int age)
  {
     name=Name;
     age=Age;
  }

  //不支持,参数类型不一致也不支持
  //因为(var name,var age)=GetUser()时无法推断变量age的类型
   public void Deconstruct(out string name,out string sex)
  {
     name=Name;
     sex=Sex;
  }

  //支持
  public void Deconstruct(out string name,out int age,out string sex)
  {
     name=Name;
     age=Age;
     sex=Sex;
  }

}