Quel est le meilleur moyen de vérifier les chaînes vides (je ne suis pas demander l'initialisation! ) en C # lorsqu'on considère performance du code ? (voir le code ci-dessous)
string a;
// some code here.......
if(a == string.Empty)
ou
if(string.IsNullOrEmpty(a))
ou
if(a == "")
toute aide serait appréciée. :)
Ne compare pas les chaînes à String.Empty
ou ""
pour vérifier les chaînes vides.
Au lieu de cela, comparez en utilisant String.Length == 0
La différence entre string.Empty
et ""
est très petit. String.Empty
ne créera aucun objet tant que ""
créera un nouvel objet dans la mémoire pour la vérification. Par conséquent, string.empty est préférable pour la gestion de la mémoire. Mais la comparaison avec string.Length == 0
sera encore plus rapide et le meilleur moyen de vérifier la chaîne vide.
Je pense que le meilleur moyen est if(string.IsNullOrEmpty(a))
car c'est plus rapide et plus sûr que les autres méthodes.
string.IsNullOrEmpty(a)
il va vérifier à la fois NULL || VIDE
c'est la mise en œuvre:
public static bool IsNullOrEmpty(string value)
{
if (value != null)
{
return (value.Length == 0);
}
return true;
}
Vous pouvez aussi utiliser longueur
string input = "";
if (input != null)
{
if (input.Length == 0)
{
}
}
Créez une méthode d'extension pour une vérification complète:
public static bool IsEmpty(this string s)
{
if(s == null) return true;
return string.IsNullOrEmpty(s.Trim()); // originally only (s)
}
Désolé, pas de bon code, corrigé. Maintenant, ceci vous dira si la chaîne est vide ou si elle est vide après le rognage.
Une arrivée tardive:
if a == ""
donnera lieu à l'avertissement d'analyse de code CA1820, vous ne devriez donc absolument pas le faire. Pour une analyse complète, voir CA1820: Test des chaînes vides à l'aide de la longueur de chaîne
La valeur String.Empty sera déchiffrée au moment de l'exécution mais "" de l'autre côté, la valeur est connue au moment de la compilation.
C'est la seule différence entre ces deux.
Mais pour en revenir à la meilleure pratique, si demain, M $ décide que la valeur de chaîne vide doit être utilisée comme "" au lieu de "" pour une raison quelconque, votre code doit alors être modifié à tout endroit. Donc, dans ce cas, il vaut mieux utiliser String.Empty.
C'est la même pratique que celle utilisée avec Path.Combine.