C#中的单行if-else

时间:2019-03-05 14:44:54

标签: c#

在C#中,是否存在以下简单逻辑的单行实现?

if (a != null) 
{
    b = a ;
}
else
{
    // do something else;
}

请注意,在else中,我不想为变量b分配其他值。

5 个答案:

答案 0 :(得分:2)

如果要单行执行if / else,则必须知道代码必须具有的结构:

条件?结果:替代

例如:

string A = "test";
Console.WriteLine(String.IsNullOrEmpty(A) ? "Yes" : "No");
//Result = No

string B = "";
Console.WriteLine(String.IsNullOrEmpty(B) ? "Yes" : "No");
//Result = Yes

答案 1 :(得分:1)

我真的不知道为什么,但是可以。

if (a != null) { b = a; } else { Console.WriteLine("Welcome to the 'else' branch"); }

答案 2 :(得分:1)

也许您正在寻找无括号的表示法?

if (a != null) b = a; else /*Do something else*/ ;

请谨慎使用,并确保oneliner可读。

答案 3 :(得分:-2)

string asd = "asd";
string bsd = null;

asd = bsd != null ? bsd : new Func<string>(() => { Console.WriteLine("Do something"); return asd; })();

这不会更改asd,它是“单线”,但如果不这样做,我不建议这样做超过正常情况

答案 4 :(得分:-2)

不确定为什么要这么做,但这是我的看法:

((a != null) ? (Action)(() => { b = a; }) : () => { /*Do something else*/ })();