C#中的速记JavaScript等价物

时间:2016-06-05 17:10:44

标签: c# nullable

我有一个可以为空的字节我要增加或设置为0,具体取决于它是否为空,如下所示:

if (TheNullableByte == null)
{
   TheNullableByte = 0;
}
else
{
   TheNullableByte = TheNullableByte++;
}

在javascript中我会这样写:

TheNullableByte = (TheNullableByte) ? TheNullableByte++ : 0;

C#中有类似内容吗?

2 个答案:

答案 0 :(得分:7)

这应该是最短的构造:

TheNullableByte = ++TheNullableByte ?? 0;

使用null-coalescing operator

小解释:

假设TheNullableByte是没有值的byte?变量(null++TheNullableByte不会更改其值(表达式结果为null) 。最后,您有0(如果是null)或者值增加1。

答案 1 :(得分:2)

您可以查看Nullable<T>.HasValue属性:

TheNullableByte = TheNullableByte.HasValue ? TheNullableByte + 1 : 0;