我有一个可以为空的字节我要增加或设置为0,具体取决于它是否为空,如下所示:
if (TheNullableByte == null)
{
TheNullableByte = 0;
}
else
{
TheNullableByte = TheNullableByte++;
}
在javascript中我会这样写:
TheNullableByte = (TheNullableByte) ? TheNullableByte++ : 0;
C#中有类似内容吗?
答案 0 :(得分:7)
这应该是最短的构造:
TheNullableByte = ++TheNullableByte ?? 0;
小解释:
假设TheNullableByte
是没有值的byte?
变量(null
)++TheNullableByte
不会更改其值(表达式结果为null
) 。最后,您有0
(如果是null
)或者值增加1。
答案 1 :(得分:2)
您可以查看Nullable<T>.HasValue
属性:
TheNullableByte = TheNullableByte.HasValue ? TheNullableByte + 1 : 0;