Shorthand JavaScript 在 C# 中等效

Shorthand JavaScript equivalent in C#

我有一个可为空的字节,我想根据它是否为空来递增或设置为 0,如下所示:

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

在javascript中我会这样写:

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

C# 中有类似的东西吗?

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

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

这应该是可能的最短结构:

TheNullableByte = ++TheNullableByte ?? 0;

使用 null-coalescing operator.

小解释:

假设TheNullableByte是一个没有值的byte?变量(它是null++TheNullableByte不改变它的值(表达式结果是null).最后你有 0(如果它是 null)或者值增加一。