Puesto que, el primer formulario utiliza 2 vs 1 C# operadores, que podría compilar a más Sin embargo, en el caso de la mayoría de los casos de uso, la mayoría de los casos de uso se encontrarán, probablemente no tendrá un tamaño de código significativo o una diferencia en el rendimiento.
Lo que PUEDE hacer una gran diferencia es la legibilidad y, por lo tanto, la posibilidad de errores al escribir/modificar. Yo (y ustedes Sheldons pueden querer cubrir sus ojos ahora) evite el uso del "!" Operador com-PLETELY. "¡Grito! ¡Mi - PALABRA!" Sí, lo dije. ¡Y LO SIGNIFICO! Con una PASIÓN! Es muy fácil pasar por alto ya que a menudo está al lado de un carácter de puntuación de aspecto similar (es decir, "(") a su izquierda y una letra de identificador de aspecto similar (es decir, "I") a su derecha. Y perderlo podría tener consecuencias MAYORES ya que significaría que usted piensa que el código está haciendo LO CONTRARIO de lo que está haciendo en realidad y que los disléxicos podrían perderlo significativamente, convirtiéndolo en un problema de derechos de discapacidad protegido por la ADA.
siguiendo muy probable ejemplo:
if (!IsIisServerConnected)
if (IsOfflineMode || !(IsIisLocalServerConnected || IsIisCloudServerConnected))
yo en cambio escribiría lo siguiente:
if (false.Equals(IsIisServerConnected))
if
(
IsOfflineMode
|| false.Equals
(
IsIisLocalServerConnected
|| IsIisCloudServerConnected
)
)
o en su caso:
if (false.Equals(foo == null))
Recuerde que C (el lenguaje que C#, C++, JavaScript, Java y muchos otros idiomas actualmente populares en última instancia heredan su sintaxis básicade) fue creado en una momento en que las tarjetas perforadas seguían siendo comunes. Con CPU, RAM, monitores e IDE modernos (ese fragmento de "false.Equals (?)" Podría generarse con un atajo de teclado personalizado), para la mayoría de las personas para la mayoría de las aplicaciones, la legibilidad es mucho, mucho, MUCHO (¿mencioné? mucho "?) más importante que guardar unos pocos caracteres de código.
P.S. También podría agregar un Método de Extensión al Boolean
Struct llamándolo, ¡oh, no sé, Not
! ; D Para que pueda escribir:
if (IsIisServerConnected.Not())
if ((foo == null).Not())
Gracias a todos, puede refactorizar nuevamente: -/ –