タプルを使ってインスタンスからデータを取り出す方法

クラス、構造体、またはインターフェイスの作成者であれば、1 つまたは複数の Deconstruct メソッドを実装することで、型のインスタンスを分解することができます。

次のコードは、Person構造体のインスタンスの分解された情報を取得する方法を示しています。

Deconstruct メソッドを実装することで、型のインスタンスを分解することができます。 このメソッドからは void が返され、分解される各値はメソッド シグネチャの out パラメーターで示されます。 たとえば、Person クラスの次の Deconstruct メソッドは、名前、苗字、年齢を返します。

using System;

namespace TapleSample
{
    class Program
    {
        static void Main(string[] args)
        {
            Person person = new Person("Taro", "Yamamoto", 3);

            var (firstName, lastName, age) = person;

            Console.WriteLine($"{firstName} {lastName} {age}");
        }
    }

    struct Person
    {
        public Person(string firstName, string lastName, int age)
        {
            FirstName = firstName;
            LastName = lastName;
            Age = age;
        }

        public string FirstName { get; init; }
        public string LastName { get; init; }
        public int Age { get; init; }

        public void Deconstruct(out string firstName, out string lastName, out int age)
        {
            firstName = FirstName;
            lastName = LastName;
            age = Age;
        }
    }
}

C#

Posted by hidepon