コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【C#】関数の戻り値で ValueTuple を使用する

概要

private (int id, string name) GetCharacter()
{
    return ( 25, "ピカチュウ" );
}

関数の戻り値で ValueTuple を使用することで

var character = GetCharacter();

Console.WriteLine( character.id + ", " + character.name );
var ( id, name ) = GetCharacter();

Console.WriteLine( id + ", " + name );

このように戻り値を受け取ることができる

private List<(int id, string name)> GetCharacters()
{
    return new List<(int id, string name)>
    {
        ( 1, "フシギダネ" ),
        ( 2, "フシギソウ" ),
        ( 3, "フシギバナ" ),
    };
}

関数の戻り値が Generic な場合でも

foreach ( var character in GetCharacters() )
{
    Debug.Log( character.id + ", " + character.name );
}
foreach ( var ( id, name ) in GetCharacters() )
{
    Debug.Log( id + ", " + name );
}

ValueTuple を使用できる