Я пытаюсь объединить несколько похожих методов в общий метод. У меня есть несколько методов, которые возвращают значение строки запроса или null, если эта строка запроса не существует или имеет неправильный формат. Это было бы достаточно просто, если бы все типы изначально допускали значение NULL, но я должен использовать универсальный тип, допускающий значение NULL, для целых чисел и дат.
Вот что у меня есть сейчас. Однако он вернет 0, если числовое значение недействительно, и, к сожалению, это допустимое значение в моих сценариях. Кто-нибудь может мне помочь? Благодаря!
public static T GetQueryString<T>(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;
}