2010-08-24 6 views

Répondre

10

Bien sûr, si vous prenez des photos pour le code plus lent qui est plus difficile à lire :)

Vous voulez vraiment utiliser string.IsNullOrWhitespace bien. Celui qui a écrit ce code aurait pu le faire avant que cette méthode existe. Mais même encore, je préférerais myString.Trim().Length == 0 dans ce cas.

+5

'string.IsNullOrWhitespace' a été introduit avec .NET 4.0, les anciennes versions ne peuvent utiliser que 'string.IsNullOrEmpty'. – Oded

+0

Merci Oded, j'ai oublié c'est nouveau. J'ai édité ma réponse pour refléter cela. –

+0

+1, plainte mineure. Je préfèrerais juste juste écrire le code IsNullOrWhitespace plutôt que de faire une allocation. La méthode est assez simple à coder. – JaredPar

2

La méthode que vous donnez ne gère pas les valeurs nulles, contrairement à String.IsNullOrEmpty. Cela voudrait dire que le passage de votre méthode à une valeur nulle est une condition d'erreur qui est un comportement différent de String.IsNullOrEmpty.

En outre, comme d'autres l'ont souligné, votre méthode retournera vrai pour isStringOnlyWhitespace(" ") alors que String.IsNullOrEmpty(" ") retournera false.

1

Oui. Les chaînes contenant uniquement des espaces ne sont pas considérées comme vides. isStringOnlyWhitespace(" ") renvoie la valeur true, mais string.IsNullOrEmpty(" ") renvoie la valeur false.

1

Non;)

a) Je pense que depuis 4 .net vous pouvez utiliser string.IsNullOrWhitespace

b) essayer quelque chose comme

public static bool IsStringOnlyWhitespace(this string str) 
{ 
    // if you want to check for null: 
    return str == null || string.IsNullOrEmpty(str.Trim()); 
    // else 
    return string.IsNullOrEmpty(string.Trim()); 
} 
+0

vous voulez dire str.Trim()? Et même si vous le faites, cela ne gère pas les valeurs nulles comme IsNullOrEmpty – recursive

+0

corrigé le code, merci pour le coup. La méthode que j'ai proposée gère soit null ou ne gère pas null, en fonction de l'instruction que vous choisissez. – Zebi