служебный класс по сравнению с разделением на подклассы средств управления .NET

К сожалению, на данный момент кажется, что это невозможно: http://www.mobilexweb.com/blog/ipad-mini-detection-for-html5-user-agent

Два дня назад я написал в Твиттере о первой обнаруженной проблеме: « Подтверждено, что пользовательский агент iPad Mini такой же, как iPad 2 ». Я получил буквально сотни ответов, в которых говорилось, что прослушивание пользовательского агента - это плохая практика, что мы должны обнаруживать функции, а не устройства и т. Д. И т. Д.

Ну, да, ребята, вы правы, но это не имеет прямого отношения к проблеме. И мне нужно добавить еще одну плохую новость: не существует техники на стороне клиента, которая бы делала «обнаружение функций», ни .

5
задан toasteroven 24 June 2009 в 13:59
поделиться

3 ответа

Если вы не против тратить деньги на упоминание о мертвом дереве, The Rails Way действительно того стоит. Опубликованные руководства, вероятно, будут вашим лучшим выбором на этот раз, но если вы планируете много работать с Rails, эта книга действительно ломает его и делает понятным. Мне это очень помогло. Удачи.

любые изменения, внесенные вами в конструктор унаследованного элемента управления, будут отображаться в конструкторе. Более того, если вы хотите добавить к нему некоторые свойства, они будут отображаться в окне свойств, что придаст ему еще большую гибкость. Если же поддержка дизайнера для вас не имеет значения, то я не вижу других недостатков у служебного класса.

1
ответ дан 14 December 2019 в 19:23
поделиться

В конечном итоге служебный класс будет более удобным в обслуживании, чем подклассовый элемент управления, если только вы не сделаете что-то более существенное для расширения DataGridView, чем изменение сортировки.

Ваш подход к служебному классу (использование DataGridView в конструкторе) - надежный подход.

3
ответ дан 14 December 2019 в 19:23
поделиться

Если вы используете C # 3, возможно, стоит взглянуть на методы расширения . Похоже, вы добавляете поведение к типу, который, как вы хотели, существовал из коробки.

static class GridExtMethods
    {
        public static void SortAsICommand(this MyGrid grid)
        {
            //grid.Prop = value; possible
            grid.Sort += MyCustomSort;
        }
        static void MyCustomSort(object sender, SortEventArgs evtArgs)
        {
            Console.WriteLine("Sort {0} and {1}", evtArgs.First, evtArgs.Second);
        }
    }

....

static void Main()
{
   var grid = new MyGrid(10,20);
   grid.SortAsICommand();

   //grid.RaiseEvent(); do something that raises the event
}
1
ответ дан 14 December 2019 в 19:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: