¿Por qué la segunda produce una excepción mientras que la primera no?ToString en cadena nula
string s = null;
MessageBox.Show(s);
MessageBox.Show(s.ToString());
Actualizado - la excepción que puedo entender, el bit desconcertante (para mí) es la razón por la primera parte no muestra una excepción. Esto no tiene nada que ver con el Messagebox, como se ilustra a continuación.
Ej:
string s = null, msg;
msg = "Message is " + s; //no error
msg = "Message is " + s.ToString(); //error
La primera parte parece estar implícita convertir un valor nulo a una cadena en blanco.
La forma más segura de hacerlo: consulte [¿Cómo hacer ToString para un objeto posiblemente nulo?] (Http://stackoverflow.com/a/3987671) –
Para evitar daños 'nulos' en una cadena u objeto,' obj ?.Encadenar() ?? "" ' – bvj