My tiny mind can't come up with an elegant solution to this problem. Suppose I have class such as this:
public class Foo<T>
{
public RecordType Type { get; set; }
public T Value { get; set; }
}
Where RecordType
may look something like this:
public enum RecordType
{
EmptyRecord,
BooleanRecord,
IntegerRecord,
StringRecord,
ByteRecord
}
The goal is to treat an IEnumerable<Foo<T>>
uniformly for an iteration and/or to switch on the RecordType
and perform an action while avoiding boxing the intrinsic types if at all possible. In addition, it would be nice to use a factory to create these Foo
's off of a factory method.
I've fumbled with a few quick implementations of commonality in base class or interface and nothing I came up with answered this, seemingly, very simple problem elegantly.
Small edit: I should've mentioned that my primary goal is to use the .Value without forcing a cast on the caller.