Questions tagged «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; …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.