私はこのように定義された基本的な 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# は同じリストで異なる種類のジェネリックを受け入れませんが、これは私が達成したいことです。そのためのヒントはありますか?