Próbuję połączyć kilka podobnych metod w metodę ogólną. Mam kilka metod, które zwracają wartość kwerendy lub null, jeśli ten obiekt kwerendy nie istnieje lub ma nieprawidłowy format. Byłoby to wystarczająco łatwe, gdyby wszystkie typy natywnie dopuszczały wartość null, ale muszę użyć typu ogólnego dopuszczającego wartość null dla liczb całkowitych i dat.
Oto, co mam teraz. Jednak przekaże z powrotem 0, jeśli wartość liczbowa jest nieprawidłowa i niestety jest to poprawna wartość w moich scenariuszach. Czy ktoś może mi pomóc? Dzięki!
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;
}