在 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;
}
Run Code Online (Sandbox Code Playgroud)
是否可以将其组合成一种接受 LineSeries 或 ScatterSeries 的方法?这样做的原因是因为我复制了许多方法来适应 LineSeries 和 ScatterSeries。
在谷歌搜索之后,我偶然发现了泛型,也许这就是这样做的方法。但是我被卡住了,因为它们都没有继承同一个类,并且让我认为它与泛型不兼容:
namespace OxyPlot.Series
{
public class ScatterSeries : ScatterSeries<ScatterPoint>
...
public class LineSeries : DataPointSeries
Run Code Online (Sandbox Code Playgroud)
编辑: 如果可能,这是我希望无错误运行的示例。现在我收到此错误:无法在 ScaleXMin(scatter) 处从“OxyPlot.Series.ScatterSeries”转换为“OxyPlot.Series.DataPointSeries”;
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); …Run Code Online (Sandbox Code Playgroud)