Mientras jugaba con nuevos conceptos, me encontré con el Ternary Operator
y su belleza. Después de jugar con él por un tiempo, decidí probar sus límites.Llamada a un método usando Operador Ternario
Sin embargo, mi diversión se terminó rápidamente cuando no pude obtener una cierta línea de código para compilar.
int a = 5;
int b = 10;
a == b ? doThis() : doThat()
private void doThis()
{
MessageBox.Show("Did this");
}
private void doThat()
{
MessageBox.Show("Did that");
}
Esta línea me da dos errores:
Error 1 Only assignment, call, increment, decrement, and new object expressions can be used as a statement
Error 2 Type of conditional expression cannot be determined because there is no implicit conversion between 'void' and 'void'
que nunca han usado una Ternary Operator
decidir el método que se llama, ni sé si es aún posible. Simplemente me gusta la idea de una línea If Else Statement
para llamadas de método.
He hecho un poco de investigación y no puedo encontrar ningún ejemplo de alguien haciendo esto, así que creo que podría estar esperando algo que no pueda proporcionar.
Si esto es posible, por favor aclararme en mis acciones incorrectas, y no es posible, ¿hay alguna otra manera?
Asegúrese de que las funciones doThis y doThat devuelven un valor de tipo int. – Chandu
Vaya, déjame publicar mis métodos muy rápido. –
Si realmente desea un 'de línea única', simplemente escríbalo como una línea: 'if (condición) doThis(); else doThat(); 'De acuerdo, el operador ternario (si funcionó de la manera en que pensaste) sería más corto, pero la concisión no siempre es algo bueno. –