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

字符串和整数,隐式和显式

如何解决《字符串和整数,隐式和显式》经验,为你挑选了1个好方法。

有一个同事问我这个问题,在我脑子里迷茫的状态我没有答案:

你为什么这样做:

string ham = "ham " + 4;

但不是:

string ham = 4;

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



1> Brian Rasmus..:

当连接编译器时,将语句"ham" + 4转换为调用String.Concat,这需要两个object参数,因此值4被加框然后ToString在其上调用.

对于赋值,没有隐式转换intstring,因此您无法4string未明确转换的情况下分配给它.

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

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