C# 使用';?反转值';操作人员
是否有与“??”运算符相反的运算符C# 使用';?反转值';操作人员,c#,.net,operators,C#,.net,Operators,是否有与“??”运算符相反的运算符 int? value = 1; var reverseValue = value ?? 5; // here I want to return 5 when the value is not null 编辑: 是否可以创建像“!?”这样的自定义运算符不要写冗长的表达: var reverseValue = value != null ? 5 : (int?)null; 谢谢 var reverseValue=value!=无效的5:(int?)空对???没
int? value = 1;
var reverseValue = value ?? 5; // here I want to return 5 when the value is not null
编辑:
是否可以创建像“!?”这样的自定义运算符不要写冗长的表达:
var reverseValue = value != null ? 5 : (int?)null;
谢谢
var reverseValue=value!=无效的5:(int?)空代码>对???没有否定,你必须坚持
var reverseValue = value != null ? 5 : value;
在这种情况下,条件运算符应该为其工作
var reverseValue = value != null ? 5 : value;
“?”前面的部分是条件。如果条件为真,则“:”左侧的部分将成为结果。如果条件为false,则“:”右侧的部分将成为结果。我只是想知道是否存在运算符(对“?”的否定),而不是编写这个长表达式。没有。我猜C#团队(正确地)认为,对于无法解决常见用例的功能而言,该功能会让人感到困惑,并使语言更加臃肿。超级次要,但我更喜欢返回(int?)null
或默认值(int?)
而不是value,因为它使代码更清楚地显示返回的是null。我同意让代码清楚地显示返回的是null。但是,为了更清晰的外观,我甚至更进一步,去掉了“var”:int?reverseValue=值!=无效的5:空代码>。。。但我想这是每个人根据自己的品味来决定的:——)