62 votes

Comment vérifier si la chaîne est nulle

Je me demande s'il existe une méthode/astuce spéciale pour vérifier si un objet String est nul. Je connais laString.IsNullOrEmpty mais je veux différencier une null d'une chaîne vide (= "" ).

Dois-je simplement utiliser :

 if (s == null) {
    // blah blah...
}

... ou y a-t-il un autre moyen ?

93voto

Jon Skeet Points 692016

Un objet ne peut pas être nul - la valeur d'une expression peut être nulle. Cela vaut la peine de faire la différence clairement dans votre esprit. La valeur de s n'est pas un objet - c'est une référence , qui est soit null, soit fait référence à un objet.

Et oui, vous devriez juste utiliser

 if (s == null)

Notez que cela utilisera toujours l'opérateur == surchargé défini dans la chaîne, mais cela fera la bonne chose.

32voto

MrTo-Kane Points 433

Bien sûr, vous devez utiliser la fonction pour vérifier qu'elle est nulle et vide comme ci-dessous :

 string str = ...
if (!String.IsNullOrEmpty(str))
{
...
}

0voto

Vonkel. Points 138

Pour .net 5 (probablement aussi pour .net Core 3.1)

Différentes possibilités d'écrire mais toujours le même problème.

 string wep = test ?? "replace";
Console.WriteLine(wep);

résultat : "remplacer"

ou

 string test=null;
test ??= "replace";
Console.WriteLine(test);
test="";
test??="replace";
Console.WriteLine(test);
  • premier essai : "remplacer"
  • deuxième essai : vide
 string test="";
if(test is null)
    Console.WriteLine("yaouh");
else
    Console.WriteLine("Not yahouu");

Résultat : "Pas yahou"

-8voto

Vous pouvez vérifier avec null ou Number.

Tout d'abord, ajoutez une référence à Microsoft.VisualBasic dans votre application.

Ensuite, utilisez le code suivant :

 bool b = Microsoft.VisualBasic.Information.IsNumeric("null");
bool c = Microsoft.VisualBasic.Information.IsNumeric("abc");

Dans ce qui précède, b et c doivent tous deux être false .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X