1

我的任务是清理一段处理图表绘制的代码,该图表将表示一段时间内电压 [kV] 的变化。我的问题是,到目前为止,它的工作相当糟糕,在标签之间切换了几次后就停止了。

你看,有两个单选按钮,它们用于切换数据点上的标签,当你来回切换这些标签时,应用程序会减慢直到完全停止。

我在这里迷失了方向,因为我自己还是个新手,并且一开始并没有参与创建这个功能,这两个因素加起来让实习生非常困惑。

我认为问题在于标签之间切换的逻辑:

                var newSerie = new Series();
                var newSerie2 = new Series();

                newSerie.ChartType = SeriesChartType.Line;
                newSerie.ChartType = SeriesChartType.Line;
                DataPoint dp = _dataPointList[i]; // FROM
                DataPoint dp2 = _dataPointList2[i]; // TO
                newSerie.Color = Color.Orange;
                newSerie2.Color = Color.MidnightBlue;
                string txt1 = _voltageList[i].Endvalue.ToString();
                string txt2 = _voltageList[i].StartValue.ToString();
                dp.Label = txt2;
                dp2.Label = txt1;
                newSerie.Points.Add(dp);
                newSerie2.Points.Add(dp2);
                newSerie.AxisLabel = _voltageList[i].MyStr;
                newSerie2.AxisLabel = _voltageList[i].MyStr;
                _localChart.Series.Add(newSerie);
                _localChart.Series.Add(newSerie2);
                _localChart.Update();
                newSerie.Points.Remove(dp);
                newSerie2.Points.Remove(dp2);

然后循环遍历列表中的每个单独的数据点。

4

1 回答 1

1

查看您的原始帖子很明显它需要重构。最初编写它的人不喜欢调用肯定的函数!

  • 首先重构与绘图无关的所有内容,例如计算给定月份的秒数。将这些东西重构为函数,甚至是辅助类。

  • 然后重构其他小的功能,你很快就会开始把这个怪物的方法归结为更易于管理和调试的东西。

  • 我的猜测是切换按钮添加了 2 个新系列,但我看不到旧系列被删除。

于 2013-08-14T08:37:13.203 回答