ルルのゲーム開発備忘録

主にUnityやC#に関する情報を気まぐれに投稿していきま~す

【C#】ValueTuple(タプル)の使い方

ValueTuple(タプル)

C#7.0からValueTuple(タプル)が追加されました。
タプルは、複数の要素をグループ化したデータです。タプルの生成方法と各要素のアクセス方法の例を以下のようになっています。

ValueTuple
ValueTuple

タプルが一番威力を発揮するケース

タプルは、一つのメソッドで複数の値を返したいときに活躍します。複数戻り値を持たせたいときに、タプルを使うことでわざわざクラスや構造体を作らずとも実現することができます。
(ただし、型を作った方が良い場面もあります。タプルは名前を持たないので可読性が悪くなるというデメリットがあります。)

メソッドの戻り値にタプルを使う

タプルの比較

タプルは「==」の比較が定義されていて、一個でも要素が違うとfalseとなります。
また要素の型が違っても暗黙的に型変換されます。
要素名(ラベル名)は比較の対象にはなりません。

タプルの比較
タプルの比較

タプルの分解

分解とは、メソッドの戻り値を個別に受け取ることです。
また、受け取る必要のない要素は「_」と記述することで破棄することができます。破棄することで可読性が上がり、使用していない変数があるという警告をなくすことができる。

またoutパラメーターを持つDeconstructメソッドが定義された方などでも分解は利用できます。(今回はDeconstructの説明はしません。)

タプルの分解
タプルの分解

参考

Unityゲーム プログラミング・バイブル 2nd Generation
https://www.borndigital.co.jp/book/22432.html