本文介绍了三元运营商在C#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用三元运算符,就可以像做以下(假设FUNC1()和FUNC2()返回一个int:

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();

不过,有没有什么办法可以做同样的事情,不返回值?例如,像(假设FUNC1()和FUNC2()返回void):

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();

我意识到这可以用一个if语句来完成,我只是想知道是否有办法做到这一点是这样的。

I realise this could be accomplished using an if statement, I just wondered if there was a way to do it like this.

推荐答案

奇怪,但你可以做

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");
    }
}

这篇关于三元运营商在C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-22 00:48