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