C # Generics: как использовать x.MaxValue / x.MinValue (int, float, double) в универсальном классе

Я использую WPF Extended Toolkit ( http: // wpftoolkit .codeplex.com / ).

У него есть красивый элемент управления NumericUpDown, который я бы хотел использовать, но внутри он использует двойные значения, что означает, что он использует double.MinValue и double.MaxValue.

Я хотел бы использовать тот же элемент управления, но мне нужна общая версия - для целых чисел нужно использовать int.MaxValue / MinValue, для чисел с плавающей запятой float.MaxValue / MinValue и т. Д. (Думаю, вы уловили идею: ))

Итак, я подумал о копировании NumericUpDown в GNumericUpDown, где T, конечно, будет Типом .. Но это не работает, потому что общий Тип не имеет MinValue / MaxValue. { {1}} И обычно я бы использовал предложение where, чтобы указать базовый тип, но это не работает, поскольку, как правило, нет общего интерфейса, определяющего MinValue и MaxValue.

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

7
задан mskfisher 16 May 2012 в 19:35
поделиться