我想测试Output.ScriptPubKey.Addresses
数组是否为空,然后将其分配给参数列表。如果它为 null,那么我想将参数值设置为 0
,否则使用数组中的项目数。
我在下面写的感觉笨拙和冗长,还有更优雅的方式吗?
int addressCount;
if (Output.ScriptPubKey.Addresses == null) { addressCount = 0; } else {
addressCount = Output.ScriptPubKey.Addresses.Length;
}
var op = new DynamicParameters();
op.Add("@AddressCount", addressCount);
代码曾经是:
op.Add("@AddressCount", Output.ScriptPubKey.Addresses.Length);
但有时Addresses
数组是空的。
您希望
将空合并运算符与空条件运算符结合使用:
int addressCount = Output.ScriptPubKey.Addresses?.Length ?? 0;
除非结果为 null,否则将使用 ??
运算符的左侧,在这种情况下,它将使用 0
。 ?.
根据 null 进行计算,如果(潜在链)的任何部分的计算结果为 null,则所有部分的计算结果均为 null。 因此,它会短路并允许您编写这样的表达式。