Esto generará una excepción de referencia nula cuando InnerException sea nula.¿Por qué arroja una excepción de referencia nula?
String s = " inner exception: " + e.InnerException == null ? "None" : e.InnerException.Message;
pero esto no:
String s = " inner exception: " + (e.InnerException == null ? "None" : e.InnerException.Message);
Tanto de la construcción por encima de bien. No puedo descifrar qué está tratando de hacer el primero que lo haría evaluar e.InnerException.Message
. ¿Por qué no son equivalentes?
Es por eso que es mejor incluir los corchetes en casos no obvios para que no tenga que pensar en la precedencia del operador. – Malcolm
@Malcolm Estoy totalmente de acuerdo. –