我有一个使用plus运算符连接两个字符串的代码。如果两个字符串为null,则两个字符串的总和不为空。
var strLeft = default(string);
var strRight = default(string);
var strSum = strLeft + strRight;
我想区分String.Empty + default(字符串)和default(字符串)+ default(字符串)。 concat操作结果都是String.Empty。
为什么两个总计的结果都是String.Empty?
答案 0 :(得分:4)
C#编译器将+
运算符对字符串参数的调用转换为对string.Concat
方法的调用。以下是此方法的文档说明:
使用Empty字符串代替任何null参数。
所以基本上就是设计。 string.Concat
方法永远不会返回null。
答案 1 :(得分:1)
这是因为空字符串被视为空字符串MSDN:
在字符串连接操作中,C#编译器将空字符串视为空字符串,但它不会转换原始空字符串的值