【发布时间】:2023-03-05 21:46:01
【问题描述】:
我有一个表示动态值、最大值和最小值以及其他一些字段的通用结构,该结构增加动态值直到达到最大值并减小直到达到最小值 - 然后来回循环。 当我希望这个结构表示几种数值类型时,问题就来了:double、uint、int32、float... 并且还将多个结构存储在一个列表中。 所以我得到的是这个结构实例的列表,这迫使我为整个列表选择结构类型 - 但我想要一个列表中的各种类型。我怎样才能实现这样的事情?我尝试使用约束并制作“where T:object”,但它说我不能使用 Object 类作为约束......
public struct eField<T> where T : struct
{
private string _fieldName;
private T _value;
private T _minVal;
private T _maxVal;
private double _duration;
}
public class Device
{
private List<eField> _fields;
}
当然,它会弥补一个错误,说明 eField 必须获取类型参数 T>,我再次希望列表具有多种类型的结构,而不仅仅是整个列表的一种类型
【问题讨论】:
-
查看一些代码可能会有所帮助。你能提供一个简单的代码示例来说明你在做什么吗?
标签: c# list generics polymorphism constraints