我有一个以这种方式定义的基本 DataTag 类:
public abstract class DataTag<TRaw, TVal>
{
public abstract TVal Value { get; }
public TRaw RawValue { get; set; }
public string Name { get; private set; }
public string Desc { get; private set; }
}
其中 TRaw 是从设备获取的原始数据,而 TVal 是“格式化”值。
所以我可能有来自同一设备的 2 个标签:
DataTag t1 = DataTag.Create<ushort,int>();
DataTag t2 = DataTag.Create<ushort[],float()>;
现在我有一个类应该包含一个通用标签列表
private IEnumerable<DataTag<?,?> _tags();
当然 C# 不会在同一个列表中接受不同类型的泛型,但这是我想要实现的。有什么建议吗?