如何使双重问号适用于一般作业?

时间:2014-04-22 17:04:24

标签: c#

在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; 

1 个答案:

答案 0 :(得分:3)

没有这样的运算符,并且不支持将运算符添加到C#(仅overloading certain operators)。我建议:

if (b)
    a = c;

它清晰,简洁,简单。如果您的指南不禁止单行if语句,它甚至可以是1行:

if (b) a = c;

当然,如果你的指导方针总是在自己的行上包括花括号,它可能是4行。

if (b)
{
    a = c;
}