Вам нужно использовать отражение, чтобы начать использовать метод, а затем «построить» его, предоставив аргументы типа MakeGenericMethod :
MethodInfo method = typeof(Sample).GetMethod("GenericMethod");
MethodInfo generic = method.MakeGenericMethod(myType);
generic.Invoke(this, null);
. Для статического метода, pass null
в качестве первого аргумента Invoke
. Это не имеет никакого отношения к универсальным методам - это просто нормальное отражение.
Как уже отмечалось, многое из этого проще с C # 4 с использованием dynamic
- если вы можете использовать вывод типа, конечно. Это не помогает в случаях, когда вывод типа недоступен, например, точный пример в вопросе.
Я использовал бы 110-ЛЕТНЕЕ (4) тип столбца..., но только если ожидаемые годы являются в диапазоне 1901 и 2155... иначе, см. ответ Gambrinus.
Я пошел бы для маленького интервала - насколько я знаю - varchar, занял бы больше места, а также даты. вторая опция была бы датой.
Мой собственный опыт с Oracle, которая не имеет типа данных ГОДА, но я всегда старался не использовать типы числовых данных для элементов просто, потому что они состоятся только цифр. (Таким образом, это включает номера телефона, номера социального страхования, почтовые индексы также, как дополнительные примеры).
Мое собственное эмпирическое правило состоит в том, чтобы рассмотреть то, для чего используются данные. Если Вы выполните, математические операции на нем тогда хранят его как число. Если Вы выполните строковые функции (например, "Берут последние четыре символа SSN", или "Отображают номер телефона как (XXX) XXX-XXXX"), тогда, это - строка.
дополнительная подсказка является требованием для хранения продвижения, обнуляет как часть числа.
, Кроме того, и несмотря на упоминание обычно как телефонное "число", они часто содержат буквы для указания на присутствие добавочного номера как суффикс. Точно так же Стандартное Книжное Число, потенциально законченное в "X" как "контрольный разряд" и Порядковый номер Международного стандарта, может закончиться "X" (несмотря на Международный Центр ISSN, неоднократно называющий его 8-разрядным кодом http://www.issn.org/understanding-the-issn/what-is-an-issn/ ).
Форматирование номеров телефона в международном контексте хитро, или курс, и соответствующий E.164 требует, чтобы коды вызова страны были снабжены префиксом "+".