Я пытаюсь присоединить общий/абстрактный 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);
}
}
...
}
Спасибо,
Майк
Как минимум, вам нужно будет добавить их в класс как общие параметры, а также любые ограничения.
internal class DataSeriesAbstract<TX, TY>: INotifyPropertyChanged
{
...
Дополнительные ресурсы
Универсальные классы (Руководство по программированию на C#)
Ваш класс также должен предоставить дженерики. Это изменит ваше объявление класса следующим образом:
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