Str*_*lfa 5 c# string concatenation
我尝试连接两个null字符串时只看到一个奇怪的结果:它返回一个空字符串!我无法想象它是否具有某些实用程序或为什么会发生这种情况。
例:
string sns = null;
sns = sns + sns;
// It results in a String.Empty
string snss = null;
snss = String.Concat(snss, snss);
// It results in a String.Empty too!
Run Code Online (Sandbox Code Playgroud)
谁能告诉我为什么它返回a String.Empty而不是null?
以下是 C# 语言规范 \xe2\x80\x9c7.8.4 加法运算符\xe2\x80\x9d 部分的片段:
\n\n\n\n字符串连接:
\n\nRun Code Online (Sandbox Code Playgroud)\n\nstring operator +(string x, string y);\nstring operator +(string x, object y);\nstring operator +(object x, string y);\n二元
\n+运算符的这些重载执行字符串连接。如果字符串连接的操作数为null,则替换为空字符串。否则,任何非字符串参数都会通过调用ToString从 type 继承的虚拟方法转换为其字符串表示形式object。如果ToString返回null,则替换为空字符串。
| 归档时间: |
|
| 查看次数: |
482 次 |
| 最近记录: |