加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Convert.ToString返回string.empty而不是null

发布时间:2020-12-15 19:58:16 所属栏目:百科 来源:网络整理
导读:我发现了Convert.ToString的一个奇怪的行为,我想了解,为什么它表现得像这样. 看看下面的代码片段: string obj = null;var str = Convert.ToString(obj);Console.WriteLine(str); // CORRECT: returns null; 到目前为止一切都很好,但是: DBNull obj = DBNul
我发现了Convert.ToString的一个奇怪的行为,我想了解,为什么它表现得像这样.

看看下面的代码片段:

string obj = null;
var str = Convert.ToString(obj);
Console.WriteLine(str); // CORRECT: returns null;

到目前为止一切都很好,但是:

DBNull obj = DBNull.Value;
var str = Convert.ToString(obj);
Console.WriteLine(str); // ???: returns string.Empty ("")

object obj = null;
var str = Convert.ToString(obj);
Console.WriteLine(str); // ???: returns string.Empty ("")

它看起来像一个bug,因为当我转换为字符串并且输入为NULL时,结果应该是字符串的默认值,也是NULL.

解决方法

Convert.ToString有 a String overload that does nothing:

Returns the specified string instance; no actual conversion is performed.

因此定义了its Object overload:

The string representation of value,or String.Empty if value is null.

这可能有点令人惊讶,但首先没有理由在String表达式上使用Convert.ToString.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读