空合并运算符 ()允许您获取变量的值(如果不是) null,或者指定可以使用的默认值。
它替换 c# 中的以下表达式 -
string resultone = value != null ? value : "default_value";
使用以下表达式 -
string resulttwo = value "default_value";
这是一个说明这一点的示例。
示例
using system;class program{ static void main(){ string input = null; string choice = input "default_choice"; console.writeline(choice); // default_choice string finalchoice = choice "not_chosen"; console.writeline(finalchoice); // default_choice }}
空合并赋值运算符 (=)如果左侧的值不为空,则返回该值。否则,它返回右侧的值。换句话说,如果变量的当前值为 null,它允许您将变量初始化为某个默认值。
它替换了 c# 中的以下表达式 -
if (result == null)result = "default_value";
使用以下表达式。
result = "default_value";
此运算符对于延迟计算的属性很有用。例如 -
示例
class tax{ private report _lengthyreport; public report lengthyreport => _lengthyreport = calculatelengthyreport(); private report calculatelengthyreport(){ return new report(); }}
空条件运算符 (?.)此运算符允许您安全地调用实例上的方法。如果实例为 null,则返回 null 而不是抛出 nullreferenceexception。否则,它只是调用该方法。
它替换 c# 中的以下表达式 -
string result = instance == null ? null : instance.method();
使用以下表达式 -
string result = instance?.method();
考虑以下示例。
示例
using system;string input = null;string result = input?.tostring();console.writeline(result); // prints nothing (null)
示例 实时演示
using system;class program{ static void main(){ string input = null; string choice = input "default_choice"; console.writeline(choice); // default_choice string finalchoice = choice "not_chosen"; console.writeline(finalchoice); // default_choice string foo = null; string answer = foo?.tostring(); console.writeline(answer); // prints nothing (null) }}
输出default_choicedefault_choice
以上就是c# 提供哪些运算符来处理空值?的详细内容。
