gpt4 book ai didi

c# - 如果转换为 null,为什么 Convert.ToString(null) 会返回不同的值?

转载 作者:IT王子 更新时间:2023-10-29 03:34:12 37 4
gpt4 key购买 nike

Convert.ToString(null)

返回

null

正如我所料。

但是

Convert.ToString(null as object)

返回

""

为什么这些不同?

最佳答案

ToString 有 2 个重载在这里发挥作用

Convert.ToString(object o);
Convert.ToString(string s);

C# 编译器基本上会尝试选择最具体的重载来处理输入。 null 值可转换为任何引用类型。在这种情况下,stringobject 更具体,因此它将被选为获胜者。

null as object 中,您已将表达式的类型固化为 object。这意味着它不再与 string 重载兼容,编译器选择 object 重载,因为它是唯一兼容的重载。

C# 语言规范的第 7.4.3 节详细介绍了这种平分如何工作的详细信息。

关于c# - 如果转换为 null,为什么 Convert.ToString(null) 会返回不同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10355736/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com