我正在尝试将通用/抽象DataSeries附加到INotifyPropertyChanged对象。但是,TX,TY泛型似乎阻止了我按预期使用它。有人可以帮我吗?
internal class DataSeriesAbstract : INotifyPropertyChanged
{
public string dataName;
public double lastAppendedTimestamp = 0.0f;
public List<AbstractChartViewModel> subscribers;
// gives an error that TX and TY cannot be found
public DataSeries<TX, TY> realData;
public DataSeries<TX, TY> Data
{
get { return realData; }
set
{
realData = value;
OnPropertyChanged(dataName);
}
}
...
}
谢谢你,
迈克
答案 0 :(得分:3)
您的课程也需要提供泛型。这将更改您的类声明,如下所示:
internal class DataSeriesAbstract<TX, TY> : INotifyPropertyChanged where TX : IComparable where TY : IComparable
如果执行此操作,则where约束将很关键,因为DataSeries具有相同的约束。
现在,如果您知道数据系列的具体类型,则可以使用它代替TX,TY。例如:
public DataSeries<double, double> realData;
public DataSeries<double, double> Data
答案 1 :(得分:0)
至少,您需要将它们作为通用参数添加到类中,并添加任何约束条件
internal class DataSeriesAbstract<TX, TY>: INotifyPropertyChanged
{
...
其他资源