C#を始めよう|タプル型を使って複数の戻り値を返すメソッド

C#を始めよう|タプル型を使って複数の戻り値を返すメソッド

C#

まずはC# 7.0 以降から利用できるタプルについて知っておきましょう。

タプルって何?

Tupleと書いて「タプル」言うようです。

タプルを使うことによって軽量データ構造に複数のデータ要素をグループ化することができます。

タプルの使いどころの1つとしてメソッドの戻り値にタプル型でグルーピングして複数の値を返すことが可能です。

メソッドが複数の戻り値を返す方法は幾つかありますが、タプルを使うことで簡素なコードで実現できるのです。

タプルを使ったサンプルコード

タプルの使い方は様々です。

タプル型を定義するには、すべてのデータ メンバーの型が必要になります。

型のみを定義

(int , string)  VariableA   =   (1,"あいうえお");
Console.WriteLine(string.Format("intの値:{0} stringの値:{1}",VariableA.Item1,VariableA.Item2));

型のみを定義するとItem1,Item2,Item・・・と自動的にフィールド名が付与されます。

フィールド名を定義

var VariableB = (x: 10, y: "かきくけこ");
Console.WriteLine(string.Format("xの値:{0} yの値:{1}",VariableB.x,VariableB.y));

右辺、代入する方にxとyのフィールド名を付けました。
参照するときもこのx,yのフィールド名を使用します。

(int x, string y) VariableC = (20, "さしすせそ");
Console.WriteLine(string.Format("xの値:{0} yの値:{1}",VariableC.x,VariableC.y));

あああ左辺代入される方にフィールド名を付けました。
参照の仕方は先ほどと同様にx,yのフィールド名を使用します。

戻り値を2つ以上返すメソッド

void    XMain()
{
    (int , string)    VariableD   =   Test();
    Console.WriteLine(string.Format("xの値:{0} yの値:{1}",VariableD.Item1,VariableD.Item2));
}
(int,string)    Test()
{
    return  (30,"たちつてと");
}

呼び出し元でタプルを宣言して戻り値を代入します。
Testメソッドではreturn でタプルを戻します。

まとめ

複数の戻り値を返す方法はoutを使ったり、配列を使ったりして可能ではありますが、タプルを使った方法がいいのではと思っています。

コメント

タイトルとURLをコピーしました