No hacer nada palabra clave en C #?

¿Hay una palabra clave para “no hacer nada” en C #?

Por ejemplo, quiero usar un operador ternario donde una de las acciones es no realizar ninguna acción:

officeDict.ContainsKey("0") ? DO NOTHING : officeDict.Add("0","") 

No, no hay tal palabra clave. Además, el operador ?: No está destinado a decidir acciones . Está destinado a decidir valores (o, más técnicamente, expresiones de valor ).

Realmente, realmente desea utilizar una condición if para este tipo de toma de decisiones:

 if (!officeDict.ContainsKey("0")) officeDict.Add("0", ""); 

Como han señalado otros, el uso de una sentencia if es mucho más idiomático aquí.

Pero para responder lo que pida, puede usar lambdas y delegates:

 // Bad code, do not use: (officeDict.ContainsKey("0") ? (Action)(() => { }) : () => officeDict.Add("0", ""))(); 

Dejando de lado el hecho de que esta es una mala idea, en realidad puede crear un método ‘DoNothing’ usando un atributo para emitir condicionalmente la llamada al método (tenga en cuenta que esto se basa en la convención de que no # define una condición ‘NUNCA’). Debido al ConditionalAttribute, las llamadas al método no se emitirán y usted esencialmente tiene una sección de código ‘nop’.

  [Conditional("NEVER")] public void DoNothing() { } 

Sin embargo, como ya han señalado otros, esto no es recomendable.

¿Por qué quiere usar un operador ternario, si solo quiere hacer algo en uno de los casos? ¿Por qué no inviertes la condición y usas una sentencia if?

 if (!officeDict.ContainsKey("0")) { officeDict.Add("0","") } 

¿Por qué no usar una instrucción if para que el código tenga este aspecto?

 if(!officeDict.ContainsKey("0")) officeDict.Add("0","") 

El operador ternario es para expresiones , no declaraciones.

Quieres una sentencia if .

¿Por qué no escribirlo con un simple if ?

 if (!officeDict.ContainsKey("0")) officeDict.Add("0","") 

Será mucho más legible.

¿Por qué no usas una statement IF para esto?

 if(!officeDict.ContainsKey("0")) officeDict.Add("0",""); 

Use una sentencia if en su lugar

 if (!officeDict.ContainsKey("0")) { officeDict.Add("0","") } 

Prueba esto (grinns)

  if (officeDict.ContainsKey("0")) Thread.Sleep(1) else officeDict.Add("0","")