Дублировать код в день недели обработчики событий


  private static void OnSundayChangedCallBack(DependencyObject sender, DependencyPropertyChangedEventArgs e)
    {
        BinaryDataGrid c = sender as BinaryDataGrid;
        if (c != null)
        {

            if (_shouldCallBack)
            {
                if (c.Sunday.Length == 4)
                    return;
                Days day = (Days)c.dataGrid.Items[0];
                byte[] newArray = new byte[c.Sunday.Length + 1];
                newArray[0] = Convert.ToByte(0);
                c.Sunday.CopyTo(newArray, 1);
                day.Value = BitConverter.ToInt32(newArray.Reverse().ToArray(), 0);
                _sun = day.Value;
            }
            else
            {
                _shouldCallBack = true;
                c.Sunday = BitConverter.GetBytes(_sun).Reverse().ToArray().Skip(1).ToArray();
            }
        }
    }

    private static void OnMondayChangedCallBack(DependencyObject sender, DependencyPropertyChangedEventArgs e)
    {

        BinaryDataGrid c = sender as BinaryDataGrid;
        if (c != null)
        {
            if (_shouldCallBack)
            {
                if (c.Monday.Length == 4)
                    return;
                Days day = (Days)c.dataGrid.Items[1];
                byte[] newArray = new byte[c.Monday.Length + 1];
                newArray[0] = Convert.ToByte(0);
                c.Monday.CopyTo(newArray, 1);
                day.Value = BitConverter.ToInt32(newArray.Reverse().ToArray(), 0);
                _mon = day.Value;
            }
            else
            {
                _shouldCallBack = true;
                c.Monday = BitConverter.GetBytes(_mon).Reverse().ToArray().Skip(1).ToArray();
            }
        }
    }

У меня тот же код для каждого дня недели, как я могу обобщить это так, у меня нет 6 повторений кода выше?



261
2
c#
задан 19 декабря 2011 в 12:12 Источник Поделиться
Комментарии
1 ответ

Что вам нужно сделать, это:


  1. Добавить параметр типа системы.День недели назвать, скажем, day_of_week.

  2. Заменить поля BinaryDataGrid.Воскресенье, .В понедельники т. д. с словарь что имеет ключ типа системы.День недели и использовать day_of_week получить доступ к значениям внутри этого словаря.

  3. Сделайте то же самое для вашего _sun, _mon и т. д. глобальные переменные. (За что ты будешь гореть в аду, кстати.)

Если вы не можете изменить BinaryDataGrid, то пишите два вспомогательных метода, один для и один для определения стоимости день член BinaryDataGrid: каждый метод имеет переключатель( day_of_week ) и изменяет соответствующим членом BinaryDataGrid.

Удачи и получайте удовольствие.

2
ответ дан 19 декабря 2011 в 03:12 Источник Поделиться