2017年03月09日

複数の値を返す方法 C#7.0版ではタプル型を使う

Visual Studio 2017正式版がリリースされたので、早速インストールして新登場C#7.0を試してみました。

相変わらず公式な言語仕様はどこにも公開されていないようですが、新機能のTupleで躓きました。

Tuple自体は.NET4.0で追加されたクラスでしたが、今回はC#の言語機能として追加されいます。
以下のように複数の値を纏めて扱えます。

       public (int height,int wieght) GetValues7(int index)
        {
            return (175, 60);
        }
しかしコンパイルが通りません。こんな例外です。

コンパイラの必須型'System.Runtime.CompilerServices.TupleElementNameAttribute'が見つからないため、タプルを利用するクラスまたはメンバーを定義できません。参照が指定されていることを確認してください。定義済みの型'System.ValueTuple2'は定義またはインポートされていません

だそうです。どうやら参照が必要らしい。調べてみるとSystem.ValueTuple.dllへの参照が必要なようです。Nugetします。

SystemValueTuple.PNG
↑よく読み取れませんが、System.ValueTupleで検索してヒットしたのを選択してインスコしました。
作成者がMicrosoftでProvides the System.ValueTuple structs,which implement the underlying types of C# 7.0 tuples.とあります。

これでコンパイルが通って正常に実行できました。
posted by RR at 22:42 | Comment(0) | Tips | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。