gpt4 book ai didi

c# - 字符串和整数,隐式和显式

转载 作者:太空狗 更新时间:2023-10-29 17:31:54 26 4
gpt4 key购买 nike

有一个同事问我这个问题,在我脑子糊涂的状态下我没有答案:

为什么你可以这样做:

string ham = "ham " + 4;

但不是:

string ham = 4;

如果在连接 时存在字符串转换的隐式转换/操作,为什么在分配 作为字符串时不一样? (当然没有做一些运算符重载)

最佳答案

当连接时,编译器将语句 "ham"+ 4 转换为对 String.Concat 的调用,它带有两个 object 参数,所以值 4 被装箱,然后 ToString 被调用。

对于赋值,没有从 intstring 的隐式转换,因此您不能将 4 赋值给 string 没有显式转换它。

换句话说,编译器处理这两个赋值的方式非常不同,尽管它们在 C# 中看起来非常相似。

关于c# - 字符串和整数,隐式和显式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/517695/

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