タグ付けされた質問 「discriminated-union」

15
C#の差別化された組合
[注:この質問の元のタイトルは「C#でのC(ish)スタイルの共用体」でしたが、Jeffのコメントで通知されたように、この構造は明らかに「差別化された共用体」と呼ばれます] この質問の冗長さをすみません。 すでにSOで採掘している同様の適切な質問がいくつかありますが、それらは組合のメモリ節約の利点または相互運用にそれを使用することに集中しているようです。 ここにそのような質問の例があります。 ユニオン型のものを作りたいという私の願望は少し異なります。 現在、このようなオブジェクトを生成するコードを書いています public class ValueWrapper { public DateTime ValueCreationDate; // ... other meta data about the value public object ValueA; public object ValueB; } かなり複雑なものだと思います。ことはValueA、いくつかの特定のタイプ(たとえばstring、intとFoo(これはクラスです)にValueBすることができ、別の小さなタイプのセットにすることができます。これらの値をオブジェクトとして扱うのは好きではありません(暖かくて心地よい感じが欲しい)タイプセーフのビットでコーディング)。 そのため、ValueAが論理的に特定の型への参照であるという事実を表現するために、ささいな小さなラッパークラスを書くことを考えました。私Unionが達成しようとしていることがCの組合の概念を思い出させたので、クラスを呼び出しました。 public class Union<A, B, C> { private readonly Type type; public readonly A a; public readonly B b; public readonly …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.