在c#中有一个条件运算符表达式。
var a = b ? c : d;
还有一个空的合并运算符:
var a = b ?? c;
但是空合并运算符??仅用于检查b是否为空。 我相信每个人都会写很多代码来重新分配' a'基于某些条件的价值:
var a=whatever;
if(true)
a = b;
如果我可以使用一行代码,我从不使用两行,为了使它们在一行中,我必须这样做:
a = b ? a : c;
我总是想知道我是否可以在c#中找到这样的东西:
a = b ??? c;
if b is true
a = c;
else
a is still a;
答案 0 :(得分:3)
没有这样的运算符,并且不支持将运算符添加到C#(仅overloading certain operators)。我建议:
if (b)
a = c;
它清晰,简洁,简单。如果您的指南不禁止单行if
语句,它甚至可以是1行:
if (b) a = c;
当然,如果你的指导方针总是在自己的行上包括花括号,它可能是4行。
if (b)
{
a = c;
}