none
如何让泛型函数同时支持float和double RRS feed

  • 问题

  • public void plot(double X, double Y) { var lineSeries = new LineSeries(); lineSeries.Points.Add(new DataPoint(X, Y)); PlotModel.Series.Add(lineSeries); PlotModel.InvalidatePlot(true); } public void plot(float X, float Y) { var lineSeries = new LineSeries(); lineSeries.Points.Add(new DataPoint(X, Y)); PlotModel.Series.Add(lineSeries); PlotModel.InvalidatePlot(true); }

    尝试改成泛型函数:

           public void plot<T>(T X, T Y)
            {
                var lineSeries = new LineSeries();
    
                lineSeries.Points.Add(new DataPoint(X, Y));
    
    
                PlotModel.Series.Add(lineSeries);
                PlotModel.InvalidatePlot(true);
            }
    new DataPoint那行提示无法将类型T转化为Double

    如何修改才能让泛型函数同时支持float和double?


    2019年6月3日 8:58

全部回复

  • 个人之言 水平较低 酌情参阅

    **********************

    1.如果限定double和float这是不可能的。

    2.如果非要改,整个类凡是和plot扯上关系的都要一起改。

       如果函数处理方式差不多。

       改的难度不大 全部改成泛型即可。



    **********************

    如果可能 最好是是将plot的参数改为class的形式,之后再作为参数 这样写泛型会好一点

    • 已编辑 ARM830 2019年6月4日 1:50
    2019年6月4日 1:38