Pourquoi ne puis-je pas utiliser des chaînes de caractères.Contains() si une chaîne par défaut est null?

De Doc MSDN:

public bool Contains(
    string value
)

Valeur de retour: vrai si la valeur du paramètre se produit au sein de cette chaîne, ou si valeur est la chaîne vide (""); sinon, faux.

Exception: ArgumentNullException: valeur est null.

Exemple:

string s = string.Empty; //or string s = "";
Console.WriteLine(s.Contains("Hello World!")); //output: False

Si je le modifier:

try
{
   string s = null; //or string s;
   Console.WriteLine(s.Contains("Hello World!"));
}
catch (Exception e)
{
   Console.WriteLine(e.Message);
}

Il va jeter un message d'erreur: Object reference not set to an instance of an object depuis string ne pas avoir de valeur par défaut (comme "") à partir de Les Valeurs Par Défaut De La Table (Référence C#),

S'il vous plaît revenir à l'exemple, le code ne fonctionnera que si je déclare s:

string s = "";

Maintenant, Objet s est définie à une instance d'un objet.

Donc, ma question est: Est-MSDN oublié quelque chose comme: s ne peut pas être null?

Pour le vérifier, j'ai essayé:

string s = null;
Console.WriteLine(!string.IsNullOrEmpty(s) ? s.Contains("Hello World!") : false);

Il devrait fonctionner.

Double Possible de Ce qui est une exception NullReferenceException et comment puis-je résoudre ce problème?
les appels de méthode ne sont pas admis sur null.

OriginalL'auteur Foo | 2015-11-27

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *