您的位置:程序门 -> .net技术 -> c#



急!!!关于类型转换的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


急!!!关于类型转换的问题[已结贴,结贴人:miaoli777]
发表于:2007-01-30 14:09:41 楼主
我现在:
string   zifu= "我的学号是: ";
int   shuju=1;
zifu   =   zifu   +   shuju;(可以)(而直接zifu   =   shuju,会说不能隐式转换,说明数值类型不能隐式的转换成字符串,而zifu=zifu+shuju.tostring()当然是对的,他已经把int显示转换成string型了)
所以:
上面问题到底是:
(1)数值类型能隐式转换成字符串类型吗?
(2)+号起了连接字符串的什么作用?????
(3)还是编译器发现左边zifu是字符串所以右边的shuju隐式默认用了shuju.tostring();
(4)zifu=zifu+shuju根本就是错的,只是刚好编译器通过了
小弟初学,望大虾们解惑!!!
发表于:2007-01-30 14:14:481楼 得分:0
好问题,我也不知道,学习!
发表于:2007-01-30 14:20:072楼 得分:0
这个问题其实就是运算符的重载问题,你可以看一些相关的资料学习。
发表于:2007-01-30 14:21:423楼 得分:15
zifu   =   zifu   +   shuju我记得好像并不是自动转换string,是先装箱为object的,
效率比zifu=zifu+shuju.tostring()要低
发表于:2007-01-30 14:26:524楼 得分:15
因为zifu=zifu+shuju右边的zifu+shuju     字符型数据和数据类型相加,根据‘+'号的重载把shuju改为shuju.toshring()了

我就是我!
发表于:2007-01-30 14:31:155楼 得分:0
應該不是+的運算符重載,應該是裝箱了。
发表于:2007-01-30 14:31:216楼 得分:0
拿zifu   =   zifu   +   shuju举例
编译时要先编译等号左边,查看是什么类型,然后编译到右边,最后看左右的类型,
而等号右边也一样,先看类型,至于加号前要是字符串,那就是叠加。
发表于:2007-01-30 14:31:457楼 得分:0
编译器帮你转了   先转成object在到string
发表于:2007-01-30 14:58:058楼 得分:0
现在问题归结为:
(1)是+重载调用了shuju.tostring();
(2)先装箱为object再到string了
但到底是哪个呢???


快速检索

最新资讯
热门点击