Создание универсального метода в C #

Я пытаюсь объединить несколько похожих методов в общий метод. У меня есть несколько методов, которые возвращают значение строки запроса или null, если эта строка запроса не существует или имеет неправильный формат. Это было бы достаточно просто, если бы все типы были изначально обнуляемыми, но я должен использовать обнуляемый универсальный тип для целых чисел и дат.

Вот'Что у меня сейчас? Однако он вернет 0, если числовое значение недопустимо, и это, к сожалению, является допустимым значением в моих сценариях. Кто-нибудь может мне помочь? Спасибо!

public static T GetQueryString(string key) where T : IConvertible
{
    T result = default(T);

    if (String.IsNullOrEmpty(HttpContext.Current.Request.QueryString[key]) == false)
    {
        string value = HttpContext.Current.Request.QueryString[key];

        try
        {
            result = (T)Convert.ChangeType(value, typeof(T));  
        }
        catch
        {
            //Could not convert.  Pass back default value...
            result = default(T);
        }
    }

    return result;
}

Ответы на вопрос(6)

Ваш ответ на вопрос