aw0*_*w04 1 c# string-concatenation
我试图建立一个像下面这样的字符串,我注意到它在使用后被切断了?运算符,无论前一个值是否为null.
"Some Text" + System.Environment.NewLine +
varOne.ToString() ?? string.Empty + System.Environment.NewLine +
varTwo.ToString()...
Run Code Online (Sandbox Code Playgroud)
字符串包含的所有内容(无论值是多少)都取决于varOne(Some Text + newline + varOne),除非我删除?? 运营商.看了一下后,我发现这不是首选的方法,我应该使用一个字符串构建器,但我只是好奇为什么会发生这种情况?
?? ?? operator被称为null-coalescing运算符,用于为可空值类型或引用类型定义默认值.如果操作数不为null,则返回左侧操作数; 否则返回正确的操作数.
这意味着,??只有在之前的东西为null之前,才会分配后面的东西.
所以
string sNull = null;
string s = sNull ?? "TADA";
Run Code Online (Sandbox Code Playgroud)
s 将会 TADA
和
string sNull = null;
string s = sNull ?? "TADA";
string sNormal = s ?? "NOT TADA";
Run Code Online (Sandbox Code Playgroud)
sNormal 也会 TADA
| 归档时间: |
|
| 查看次数: |
2637 次 |
| 最近记录: |