Я пытаюсь объединить кучу подобных методов в общий метод. У меня есть несколько методов, которые возвращают значение querystring, или 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;
}