Visual Studio 2017を最新の15.に更新してから今日まで、UWPアプリで正常に機能していた次のコードがあります。
private void Test()
{
var groups = new List<(Guid key, IList<(string, bool)> items)>();
var items = new List<(string, bool)>
{
("a", true),
("b", false),
("c", false)
};
var group = (Guid.NewGuid(), items);
groups.Add(group);
}
エラーメッセージはありませんが、これは出力ウィンドウにあります
タプル要素名「items」が推測されます。推定名で要素にアクセスするには、言語バージョン7.1以降を使用してください。
これを修正する理由と方法はありますか?
プロジェクト->プロパティ->ビルド->詳細->言語バージョン-> C#最新マイナーバージョン
これは確認されたバグで、15.3で導入されました。この修正は、サービスリリース(15.3.2)の一部として出荷されます。
この問題は https://github.com/dotnet/roslyn/issues/21518 で追跡されています
これは、C#の breaking change7.1のようです。 (@JulienCouvreurが指摘したように、これは実際にはバグですが、以下の回避策はまだ機能するはずです)。
回避策
name(たとえば、一貫性を保つためにIList<(string, bool)> items
と同じ名前items
を使用する)を明示的にitems
に指定してみてください(つまり、リストインスタンス)。
var group = (Guid.NewGuid(), items: items);