Je suis en train d'essayer de combiner un tas de méthodes similaires en une méthode générique. J'ai plusieurs méthodes qui renvoient la valeur d'une chaîne de requête, ou null si cette chaîne de requête n'existe pas ou n'est pas dans le format correct. Ce serait assez facile si tous les types étaient nativement nullables, mais je dois utiliser le type générique nullable pour les entiers et les dates.
Voici ce que j'ai maintenant. Cependant, il renverra un 0 si une valeur numérique est invalide, et malheureusement, c'est une valeur valide dans mes scénarios. Quelqu'un peut-il m'aider? Merci!
public static T GetQueryString(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
{
//Impossible de convertir. Renvoyer la valeur par défaut...
result = default(T);
}
}
return result;
}