générique de façon à vérifier la valeur null ou vide pour n'importe quel type int, string, double
Je suis en train de t obtenir ce travail mais de toute façon sa va de ma main... je veux être en mesure de vérifier la valeur null ou vide quel que soit le type je lui ai donné.
EX:
int i =0;
string mystring = "";
var reult = CheckNullOrEmpty(10) //passing int
var result 1 = CheckNullOrEmpty(mystring) //passing string
public bool CheckNullOrEmpty<T>(T value)
{
//check for null or empty for strings
//check for null i.e. 0 for int
}
quelqu'un peut m'aider.. je suis en train d'essayer de comprendre comment les génériques des œuvres pour cette méthode simple.
je pense que u besoin de créer de la méthode et l'a nommé tous les CheckNullOrEmpty. chaque méthode vérifie les différents types de données
Je pense que vous ne pouvez pas vérifier génériquement pour une telle chose comme vide, car il n'y a pas de définition générale: Pour un
Si vous souhaitez une valeur par défaut de comparaison, comparer
Je ne pense pas que ce serait la bonne façon, comme j'ai vu quelque part sur internet à ce sujet.. je ne peux pas semble trouver cela maintenant, et j'ai donc posé la question...
pourriez-vous me donner un exemple pour utiliser la valeur par défaut(T)..
Je pense que vous ne pouvez pas vérifier génériquement pour une telle chose comme vide, car il n'y a pas de définition générale: Pour un
string
c'est une chaîne vide, pour une int
il peut être 0
, mais pour tout type T
, il peut être n'importe quoi ou n'existe même pas...Si vous souhaitez une valeur par défaut de comparaison, comparer
default(T)
. C'est le meilleur que vous pouvez faire ici.Je ne pense pas que ce serait la bonne façon, comme j'ai vu quelque part sur internet à ce sujet.. je ne peux pas semble trouver cela maintenant, et j'ai donc posé la question...
pourriez-vous me donner un exemple pour utiliser la valeur par défaut(T)..
OriginalL'auteur patel.milanb | 2013-05-15
Vous devez vous connecter pour publier un commentaire.
Comment utiliser:
T
est un type de référence <>string
de la valeur et denull
?cela fonctionne parfaitement .....
Aucune raison de faire if (typeof(T) == typeof(string)) au lieu de if (value est une chaîne) ?
si
value
estnull
, levalue is string
ne fonctionne pasOriginalL'auteur
Vous pouvez vérifier contre
default(T);
Pour plus d'informations: http://msdn.microsoft.com/en-us/library/xwth0h0d.aspx
Malheureusement, cela ne permet pas de couvrir la chaîne.Vide.
il est dit de l'Opérateur '==' ne peut pas être appliquée à des opérandes de type 'T' et 'T'
Vous pouvez le vérifier
if typeof(T) == typeof(string)
et puis testez pour la chaîne.vide.OriginalL'auteur
Vous pouvez utiliser la valeur par défaut() -
par exemple:
à partir de MSDN:
http://msdn.microsoft.com/en-us/library/xwth0h0d(v=vs. 80).aspx
OriginalL'auteur
Parce que votre
CheckNullOrEmpty
mise en œuvre diffère selon le type, vous ne pouvez pas avoir que de vérifier qu'une fonction générique.Si vous utilisez
Nullable
types de valeur cependant, vous pouvez utiliserGetValueOrDefault()
:Alors pour
string
, juste une méthode d'extension:Alors vous pouvez faire:
OriginalL'auteur
OriginalL'auteur