Quelles sont les différences entre ces commandes en C# ?
string text= " ";
1-string.IsNullOrEmpty(text.Trim())
2-string.IsNullOrWhiteSpace(text)
Quelles sont les différences entre ces commandes en C# ?
string text= " ";
1-string.IsNullOrEmpty(text.Trim())
2-string.IsNullOrWhiteSpace(text)
Si votre chaîne (dans votre cas, la variable text
) pourrait être nulle, cela ferait une grande différence :
1- string.IsNullOrEmpty(text.Trim())
--> EXCEPTION puisque vous appelez un mode de fonctionnement d'un objet nul.
2- string.IsNullOrWhiteSpace(text)
Cela fonctionnerait bien puisque le problème de nullité est vérifié en interne.
Pour obtenir le même comportement en utilisant la première option, il faudrait d'abord vérifier que le fichier n'est pas nul, puis utiliser la méthode trim().
if ((text != null) && string.IsNullOrEmpty(text.Trim())) { ... }
String.IsNullOrWhiteSpace(text) devrait être utilisé dans la plupart des cas comme il inclut également une chaîne vide avec des espaces mais aucun autre texte. .
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace Rextester
{
public class Program
{
public static void Main(string[] args)
{
//Your code goes here
var str = "";
Console.WriteLine(string.IsNullOrWhiteSpace(str));
}
}
}
Il retourne Véritable !
[Test de performance] juste au cas où quelqu'un se poserait la question, dans un test de chronomètre comparant
if(nopass.Trim().Length > 0)
if (!string.IsNullOrWhiteSpace(nopass))
voici les résultats :
Trim-Length avec valeur vide = 15
Trim-Length avec une valeur non vide = 52
IsNullOrWhiteSpace avec une valeur vide = 11
IsNullOrWhiteSpace avec une valeur non vide = 12
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.