我的小小心灵无法想出一个优雅的解决方案来解决这个问题。假设我有类如这样:简单课程+工厂的通用解决方案
public class Foo<T>
{
public RecordType Type { get; set; }
public T Value { get; set; }
}
凡RecordType
可能是这个样子:
public enum RecordType
{
EmptyRecord,
BooleanRecord,
IntegerRecord,
StringRecord,
ByteRecord
}
的目标是一致对待的IEnumerable<Foo<T>>
的迭代和/或对RecordType
开关和如果可能的话,尽量避免装箱固有类型的同时执行动作。此外,如果使用工厂来创建这些Foo
的工厂方法,那将是非常好的。
我已经摸索了一些基类或接口的通用性的快速实现,没有什么我想出来的,看起来很简单的问题。
小编辑: 我应该提到我的主要目标是使用.Value而不强制在调用者上强制转换。
T是否以任何方式与RecordType相关? – Grzenio 2010-06-28 14:46:57
好问题,是的,假设T分别是bool,int,string,byte [](对于这个例子) – Marc 2010-06-28 14:47:38