null运算符
==C#提供了三个简化null处理的运算符==
- null合并运算符
- null合并赋值运算符
- null条件运算符
null合并运算符
合并运算符写作??。意思是如果左侧操作数不是null,则结果为操作数,否则结果为另一个值。合并运算适用于可空值类型
- 示例
string s1 = null;
string s2 = s1 ?? "nothing"; // s2 evaluates to "nothing"
s2.Dump();
null合并赋值运算符
合并赋值运算符写作 ==??===。含义是如果左侧操作数为null,则将右侧的操作数赋值给左侧的操作数
- 示例
string s1 = null;
s1 ??= "something";
Console.WriteLine (s1); // something
s1 ??= "everything";
Console.WriteLine (s1); // something
null条件运算符
==?.== 运算符称为null条件运算符或者Elvis运算符。当运算符左侧为null时候,该表达式运算结果也是null,而不会抛出NullReferenceException
- 示例
System.Text.StringBuilder sb = null;
string s = sb?.ToString(); // No error; s instead evaluates to null
s.Dump();
string s2 = sb?.ToString().ToUpper(); // s evaluates to null without error
s2.Dump();
网友评论