我有一个包含两组数据的类。
- X 的值列表。
- Y 的值列表。
现在,X 和 Y 可以以任何可能的组合保存字符串/双精度/整数/日期时间。唯一的规则是在任何给定时间点,两个列表必须包含相同数量的值。
我可以通过仅通过 AddXY 方法和 RemoveAt 方法提供访问来解决始终保持相同数据的问题(确保在任何给定时间点,我可以保证 X 列表和 Y 列表的大小相同)。
此外,我希望此类的最终用户能够通过索引器访问 X 和 Y 值,如下所示。
someClassInstance.X[i] 和 someClassInstance.Y[i]
由于在 C# 中没有此选项,因此我选择将 X 和 Y 公开为 IList (AsReadOnly) 方法。
现在,我考虑了使用泛型来约束类型的想法。但我无法为这种特殊情况找到合适的例子。
我怎么说
public class MyClass<P, Q>
where P : Double, String, Integer, DateTime
and Q : Double, String, Integer, DateTime
我应该完全放弃这个想法并查看某种元组或某种这样的数据结构吗?
编辑:我也知道约束不能是值类型,那么这是如何工作的?