Bonjour à tous !
Je développe en Asp.NET (C#) un formulaire contenant moults champs, chaque champs représentant un critère de recherche. Ces critères sont de différents types (chaîne, date, entier, flottant, …) et ne sont pas obligatoires.
J’envoie tous ces critères à mon objet Métier par le biais d’une grosse structure, cette structure contenant un attribut par critères. Ces attributs sont typés (string, int?, float?, DateTime?, …) en utilisant la classe Nullable pour les types valeurs. Je voudrais en effet que les critères non renseignés aient la valeur null.
Le problème se pose au moment de renseigner la structure…
Toutes les valeurs du formulaire sont de type string, je me suis donc dis que j’allais créer une méthode générique qui testerait la valeur d’un champ et renverait la valeur typée correspondante, ou null si le champs n’est pas renseigné.
Après plusieurs essais, j’en arrive à ça :
[code]// Pour les types valeurs
private static Nullable convertFieldValue(string value) where T : struct
{
T? retour = default(T);
if (value != "")
{
retour = (T?) Convert.ChangeType(value, retour.GetType());
}
else
{
retour = null;
}
return retour;
}
// pour les types string
private static string convertFieldValue(string value)
{
string retour;
if (value != "")
{
retour = value;
}
else
{
retour = null;
}
return retour;
}[/code]
Existe-t’il un moyen de combiner ces 2 méthodes ?
Ce n’est pas forcement nécessaire, mais je trouverais ça plus satisfaisant B)