Ich versuche, eine Reihe ähnlicher Methoden zu einer generischen Methode zu kombinieren. Ich habe mehrere Methoden, die den Wert eines Querystrings zurückgeben, oder null, wenn dieser Querystring nicht existiert oder nicht im richtigen Format vorliegt. Dies wäre einfach genug, wenn alle Typen von Haus aus nullwertfähig wären, aber ich muss den generischen Typ nullbar für Ganzzahlen und Datumsangaben verwenden.
Folgendes habe ich jetzt. Es wird jedoch eine 0 zurückgegeben, wenn ein numerischer Wert ungültig ist, und dies ist in meinen Szenarien leider ein gültiger Wert. Kann mir jemand helfen? Vielen Dank!
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;
}
ChangeType
Fehler auftritt.