Estoy tratando de combinar varios métodos similares en un método genérico. Tengo varios métodos que devuelven el valor de una cadena de consulta, o nulo si esa cadena de consulta no existe o no tiene el formato correcto. Esto sería bastante fácil si todos los tipos fueran anulables de forma nativa, pero tengo que usar el tipo genérico anulable para enteros y fechas.
Esto es lo que tengo ahora. Sin embargo, devolverá un 0 si un valor numérico no es válido y, lamentablemente, es un valor válido en mis escenarios. alguien me puede ayudar? ¡Gracias!
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;
}