Полиморфизм или убрать повторяющиеся части кода - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте люди, помогите можно ли как то вынести в отдельный класс\метод\функцию\интерфейс или хоть куда нибудь , часть когда которая повторяется , но в некоторых частях программы немного меняется. Ну например есть такой код:
 private void button3_Click(object sender, EventArgs e)
        {
            Class1 objClass1 = new Class1();
            if (comboBox2.Text == "Полином Лагранжа")
            {
                // Получим панель для рисования
                GraphPane pane = zedGraphControl1.GraphPane;
                // Изменим текст надписи по оси X
                pane.XAxis.Title.Text = "Величина";
                // Изменим текст заголовка графика
                pane.Title.Text = "График";
                // Изменим текст по оси Y
                pane.YAxis.Title.Text = "Напряжение";
                // Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы
                pane.CurveList.Clear();
                // Создадим список точек
                PointPairList list_1 = new PointPairList();
                PointPairList list_2 = new PointPairList();
                int n = 30;
                double a = -3;
                double b = 3;
                double h = (b - a) / (n - 1); // расстояние между узлами
                                              // Заполняем список точек
                for (double x = a; x <= b; x += h)
                {
                    //добавим в список точку
                    list_1.Add(x, objClass1.F(x));
                }
                objClass1.Fill(a, h);
                for (double x = a; x <= b; x += h)
                {
                    //добавим в список точку
                    list_2.Add(x, objClass1.L1(x, objClass1.Node));
                }
                LineItem myCurve1 = pane.AddCurve("Исходная функция", list_1, Color.Blue, SymbolType.None);
                LineItem myCurve2 = pane.AddCurve("Интерполяционный полином", list_2, Color.Red, SymbolType.None);
                zedGraphControl1.Invalidate();
            }
            if (comboBox2.Text == "Бета сплайн")
            {
                // Получим панель для рисования
                GraphPane pane = zedGraphControl1.GraphPane;
                // Изменим текст надписи по оси X
                pane.XAxis.Title.Text = "Измеряемая величина";
                // Изменим текст заголовка графика
                pane.Title.Text = "График 2";
                // Изменим текст по оси Y
                pane.YAxis.Title.Text = "Время";
                // Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы
                pane.CurveList.Clear();
                // Создадим список точек
                PointPairList list = new PointPairList();
                double xmin = -50;
                double xmax = 50;
                // Заполняем список точек
                for (double x = xmin; x <= xmax; x += 0.01)
                {
                    // добавим в список точку
                    list.Add(x, objClass1.interp1(x));
                }
                // Создадим кривую с названием "Sinc", 
                // которая будет рисоваться голубым цветом (Color.Blue),
                // Опорные точки выделяться не будут (SymbolType.None)
                LineItem myCurve = pane.AddCurve("Sinc", list, Color.Blue, SymbolType.None);
                // Вызываем метод AxisChange (), чтобы обновить данные об осях. 
                // В противном случае на рисунке будет показана только часть графика, 
                // которая умещается в интервалы по осям, установленные по умолчанию
                zedGraphControl1.AxisChange();
                // Обновляем график
                zedGraphControl1.Invalidate();
            }
        }
Как мы видим часть кода
// Получим панель для рисования
                GraphPane pane = zedGraphControl1.GraphPane;
                // Изменим текст надписи по оси X
                pane.XAxis.Title.Text = "Величина";
                // Изменим текст заголовка графика
                pane.Title.Text = "График";
                // Изменим текст по оси Y
                pane.YAxis.Title.Text = "Напряжение";
                // Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы
                pane.CurveList.Clear();
в данном месте повторяется два раза , но меняются подписи к осям. Так вот вопрос куда можно вынести эту часть кода, чтобы потом его можно было вызывать скажем 1-2 строчкой. И при необходимости вносить изменения. Так как в программе много таких мест где начинается строить график , только с разными осями, не хотелось бы везде одно и тоже по 100 раз писать.
или хотя бы без изменений, чтобы можно было просто вызывать эту часть кода...

Решение задачи: «Полиморфизм или убрать повторяющиеся части кода»

textual
Листинг программы
public void GraphControl(string nameXAxis, string nameYAxis, string nameTitle, GraphPane pane)
        {
            pane.XAxis.Title.Text = nameXAxis;
            pane.Title.Text = nameTitle;
            pane.YAxis.Title.Text = nameYAxis;
            pane.CurveList.Clear();
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5
Похожие ответы