在INotifyPropertyChanged对象中将Abstract类与通用参数一起使用

时间:2019-04-08 21:27:24

标签: c# generics casting scichart

我正在尝试将通用/抽象DataSeries附加到INotifyPropertyChanged对象。但是,TX,TY泛型似乎阻止了我按预期使用它。有人可以帮我吗?

有关抽象类的更多信息:https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Charting~SciChart.Charting.Model.DataSeries.DataSeries%602.html

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);
        }
    }
...
}

谢谢你,
迈克

2 个答案:

答案 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
{
   ...

其他资源

Generic Classes (C# Programming Guide)