タグ付けされた質問 「valuetuple」

1
ValueTupleを共変にするものは何ですか?
これはC#7.3(フレームワーク4.8)で正しくコンパイルされます。 (string, string) s = ("a", "b"); (object, string) o = s; これは次の構文シュガーであることを知っています。これも正しくコンパイルされます。 ValueTuple<string, string> s = new ValueTuple<string, string>("a", "b"); ValueTuple<object, string> o = s; したがって、ValueTuplesを共変的に割り当てることができるようです。これはすばらしいことです。 残念ながら、その理由はわかりません。C#はインターフェイスとデリゲートの共分散しかサポートしていないという印象を受けました。ValueTypeどちらでもありません。 実際、自分のコードでこの機能を複製しようとすると、失敗します。 struct MyValueTuple<A, B> { public A Item1; public B Item2; public MyValueTuple(A item1, B item2) { Item1 = item1; Item2 = …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.