Je travaille avec une ancienne base de données Oracle, et je pense qu'il y a probablement une meilleure façon de déballer les valeurs que je récupère de la base de données.Bonne façon de dégrouper les valeurs de la base de données
Actuellement, j'ai une classe statique complète des différentes méthodes spécifiques de type:
public static int? Int(object o)
{
try
{
return (int?)Convert.ToInt32(o);
}
catch (Exception)
{
return null;
}
}
..et ainsi de suite pour différents types, mais je me sens qu'il devrait y avoir une meilleure façon? Si je veux unbox une valeur, je fais quelque chose le long des lignes de ...
int i;
i = nvl.Int(dataRow["column"]); //In this instance, "column" is of a numeric database type
Je pensais à l'aide d'une classe générique pour gérer tous les différents types, mais je ne pouvais pas vraiment comprendre la La meilleure façon d'y arriver.
Des idées?
C'est génial, Joe, merci. Je suis désolé pour mon ignorance, mais je ne suis pas très clair sur la première ligne: Nullable public static ToNullable (valeur de l'objet) où T: struct En particulier, le « Nullable » suivi du " ToNullable "partie. Est-ce une méthode abrégée pour créer une classe/méthode? –
KarlHungus
C'est une déclaration de méthode: pour clarifier cela, j'ai ajouté une déclaration de classe (class MyHelper) à l'exemple. "Nullable" est le type de retour de la méthode et "ToNullable " est le nom de la méthode. Vous remplacez "T" par n'importe quel type, contraint par le fait qu'il doit être un type de valeur ou struct (où T: struct). Par conséquent, si vous appelez la méthode avec le type décimal (ToNullable ), le type de retour sera Nullable alias "decimal?". J'espère que c'est un peu plus clair. –
Joe
Ah, je ne connaissais pas la classe "Nullable" que vous aviez utilisée. Merci Joe. Je vous en suis reconnaissant. – KarlHungus