Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/09/2013, 15:09
Avatar de ryugen
ryugen
Colaborador
 
Fecha de Ingreso: agosto-2008
Ubicación: Rosario, Santa Fe
Mensajes: 350
Antigüedad: 16 años, 5 meses
Puntos: 187
Respuesta: if en una linea

Me parece que estas mezclando un par de cosas:

Primero tienes dos condicionales en una sola linea

a == 0 ? (Action)metodo1 : (codigo)

y ...

a > 0 ? (Action)metodo2)();

el segundo. Y como puedes ver al segundo le falta una parte ": (codigo)".

Minimamente deberia ser:

a == 0 ? (Action)metodo1 : a > 0 ? (Action)metodo2 : (Action)metodo3;

Asumiendo que metodo1, metodo2 y metodo3 se puede castear a Action

Otro gran problema que veo en el código es el muy mal uso de los parentesis, no entiendo como no te da error de sintaxis ese codigo.

Finalmente creo que este código funcionaria de la siguiente forma:

Código C++:
Ver original
  1. using System.IO;
  2. using System;
  3.  
  4. class Program
  5. {
  6.     static void Main()
  7.     {
  8.         int a = 9;
  9.         // Read in every line in the file.
  10.         Action example1 = () => Console.WriteLine("Example1");
  11.         Action example2 = () => Console.WriteLine("Example2");
  12.         Action example3 = () => Console.WriteLine("Example3");
  13.         // Call the anonymous methods.
  14.         (a == 0 ? (Action)example1 : a > 0 ? (Action)example2 : (Action)example3).Invoke();
  15.     }
  16. }

La salida por consola es: "Example2"

Ah otra cosa! Los cast a Action son opcionales

Última edición por ryugen; 30/09/2013 a las 15:15