当前位置:  开发笔记 > 编程语言 > 正文

为什么在字符串合法中添加null?

如何解决《为什么在字符串合法中添加null?》经验,为你挑选了2个好方法。

有关String Basics的MSDN文章显示了这一点:

string str = "hello";
string nullStr = null;
string emptyStr = "";

string tempStr = str + nullStr; // tempStr = "hello"
bool b = (emptyStr == nullStr);// b = false;
string newStr = emptyStr + nullStr; // creates a new empty string
int len = nullStr.Length; // throws NullReferenceException

为什么不与null连接抛出空引用异常?它是为了让程序员的生活更轻松,这样他们在连接之前不必检查null吗?



1> CMS..:

来自MSDN:

在字符串连接操作中,C#编译器将空字符串视为空字符串,但它不会转换原始空字符串的值.

有关+二元运算符的更多信息:

当一个或两个操作数的类型为字符串时,binary +运算符执行字符串连接.

如果字符串连接的操作数为null,则替换空字符串.否则,通过调用从类型对象继承的虚拟ToString方法,将任何非字符串参数转换为其字符串表示形式.

如果ToString返回null,则替换空字符串.


C#团队的绝佳选择,因为事实证明它可以与C#6空条件运算符配合使用,特别是在与C#6字符串插值功能结合使用时:例如:return $“ {person?.FirstName} {person?.LastName }“`

2> 小智..:

我同意概念上字符串只是值.但是,请考虑以下代码:

int? i = null;
i += 1; // The result of this is that i == null

如果其他值类型运算符使用default()字符串运算符将null转换为""的方式,那么您的解释是有意义的.

为方便起见,最简单的说字符串运算符是一种快捷方式(特殊情况).

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有