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

本文关键字:作业 适用于 何使双 | 更新日期: 2023-09-27 17:59:27

在c#中有一个条件运算符表达式。

var a = b ? c : d;

还有一个空合并运算符:

var a = b ?? c;

但是空合并运算符??只适用于检查b是否为null。我相信每个人都会写很多代码,根据一些条件将"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; 

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

没有这样的运算符,也不支持向C#添加运算符(只重载某些运算符)。我推荐:

if (b)
    a = c;

它清晰、简洁、简单。如果你的指导方针不禁止单行if语句,它甚至可能是单行:

if (b) a = c;

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

if (b)
{
    a = c;
}