Ternary operators in C#

.net, c#, methods, ternary-operator

Solution

Weird, but you could do

class Program
{
    private delegate void F();

    static void Main(string[] args)
    {
        ((1 == 1) ? new F(f1) : new F(f2))();
    }

    static void f1()
    {
        Console.WriteLine("1");
    }

    static void f2()
    { 
        Console.WriteLine("2");
    }
}

Problem

With the ternary operator, it is possible to do something like the following (assuming Func1() and Func2() return an int: ``` int x = (x == y) ? Func1() : Func2(); ``` However, is there any way to do the same thing, without returning a value? For example, something like (assuming Func1() and Func2() return void): ``` (x == y) ? Func1() : Func2(); ``` I realise this could be accomplished using an if statement, I just wondered if there was a way to do it like this.

Original source