在C#中,是否存在以下简单逻辑的单行实现?
if (a != null)
{
b = a ;
}
else
{
// do something else;
}
请注意,在else
中,我不想为变量b分配其他值。
答案 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*/ })();