| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2606 人关注过本帖
标题:c#中(转换关键字)(变量名)与convert.转换关键字,这两种情况怎么用??
只看楼主 加入收藏
xkyshen
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-11-23
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
c#中(转换关键字)(变量名)与convert.转换关键字,这两种情况怎么用??
string names="100";
double x,y;
1 x=(double)(names)
2 y=convert.todouble(names)

这两个用法怎么区别啊,什么情况下用1 种方式,什么情况下用到2种
搜索更多相关主题的帖子: convert 关键字 double 
2013-03-22 11:31
qq645485165
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:76
专家分:197
注 册:2013-3-16
收藏
得分:5 
string类型的name是无法强制转换成double类型的,第一种情况会出错。只能用convert.todouble(name)或者double.parse(name)
2013-03-22 11:44
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:5 
第1种叫做强转,强制转换,就是强行把一种类型当成是另一种类型来使用,并不会实质的改变内容
比如一个短整型short数据,可以强制当成整型int型来使用,即short可以强转为int
比如一个男人,我强行把他当成一个女人来使用,上女厕所,穿女人的衣服(哈哈,变成伪娘了),当然这样是不行的.但是如果一个大娘,我把她当小女生使用,例如送大娘去上学,给她穿年轻的衣服,嘿嘿,这就可以的

第2种,使用convert方法进行转换,convert.todouble()是一个方法,这个方法里面写了很多代码用于转换数据,转换以后,虽然表面看起来值没有变,但实质内容已经改变了
就好像一个男人,我给他做了变性手术,把他变成女人了(哇,妖怪),虽然还是同一个人,但实质已经改变了
你上面的names为字符串,通过convert转换成double,虽然值还是100,但实质上已经由字符变成了数字了
2013-03-22 15:39
xkyshen
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-11-23
收藏
得分:0 
我还是不太明白,因为在用到这种方式的时候,我是在碰运气,如果第一种方式c#提示出错,然后我改后convert.<关键字>,我是想确切的知道我在需要转换类型的时候,准备的知道用哪种方式?请大高手们指,我是新手刚入门,见笑了,不好意思
2013-03-22 16:20
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
啊啊啊啊啊!!!!既然明白道理了,知道两种转换的区别了,就应该知道了呀.不动脑学编程可不行袄
按照原理,转换后可以完全包含转换前的,可以强转
short可以强转为int和long, int可以强转为long, Float可以强转为double,这些强转是决对不会报错的
当然int也可以强转为short,double也可以强转为int,只要你想用就可以用,只是存在报错的风险,转换前需要考虑是否超出范围,如int强转为short,int的值在short允许的范围内就不报错,超出范围就报错
convert转换时,如果超出范围,会自动舍去,所以不会报错,建议数值类型转换都用convert,另字符串转数值类型都用convert
convert只能转换基本数据类型,所有的引用类型转换都使用强转,比如父类转子类
2013-03-22 16:50
卡巴斯
Rank: 2
等 级:论坛游民
帖 子:50
专家分:31
注 册:2012-12-18
收藏
得分:5 
简单说就是值类型之间转换的话可以强制转换(第一种),值类型和引用类型之间转换用第二种(比如字符串转值类型)
2013-03-22 17:46
qq645485165
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:76
专家分:197
注 册:2013-3-16
收藏
得分:0 
低------------------------------------→高
byte,short,char→int→long→float→double
当从低到高是转换,如:         
char a='1';
int i = a;
Console.WriteLine(i);这样就可以直接转换,但是输出的i值不是1,而是ascii值49,
如果从高到低,如:
 int i = 49;
char a = (char)i;
Console.WriteLine(a);这就是强制转换,输出ascii表对应的值1,
只要不是我列出的从低到高的类型,要转换就要用convert,比如name就不在此列,转换成int就要convert
2013-03-23 09:38
xkyshen
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-11-23
收藏
得分:0 
谢谢大家了.我明白了
2013-03-23 16:23
窝窝头cxf
Rank: 2
等 级:论坛游民
帖 子:4
专家分:10
注 册:2012-3-13
收藏
得分:5 
(变量名).To转为关键字
这种方法什么时候使用,和以上两种的区别是什么?
2013-03-24 00:33
快速回复:c#中(转换关键字)(变量名)与convert.转换关键字,这两种情况怎么用??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020020 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved