В C# есть ли способ использовать «или» во входном аргументе метода? Например, у меня есть метод ScaleXmin и ScaleXmin_scatter, которые оба возвращают свойство Points для ввода.
public double ScaleXmin(LineSeries lineSeries)
{
return lineSeries.Points[0].X;
}
public double ScaleXmin_scatter(ScatterSeries scatterSeries)
{
return scatterSeries.Points[0].X;
}
Возможно ли объединить это в один метод, который принимает LineSeries или ScatterSeries? Причина для этого заключается в том, что я продублировал множество методов для размещения LineSeries и ScatterSeries.
После поиска в Google я наткнулся на дженерики, и, возможно, это способ сделать это. Но я застрял, потому что они оба не наследуют один и тот же класс, и заставляет меня думать, что он несовместим с Generics:
namespace OxyPlot.Series
{
public class ScatterSeries : ScatterSeries<ScatterPoint>
...
public class LineSeries : DataPointSeries
EDIT: Вот пример того, что я ' Я хотел бы работать без ошибок, если это возможно. Прямо сейчас я получаю эту ошибку: не могу преобразовать из «OxyPlot.Series.ScatterSeries» в «OxyPlot.Series.DataPointSeries» в ScaleXMin (scatter);
using OxyPlot.Series;
LineSeries line = new LineSeries();
ScatterSeries scatter = new ScatterSeries();
public double ScaleXMin(DataPointSeries series)
{
return series.Points[0].X;
}
public void Test()
{
double x = ScaleXMin(line);
double y = ScaleXMin(scatter);
}