C#7的解构

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

posted on 2023-12-12 19:17  漫思  阅读(7)  评论(0编辑  收藏  举报

导航