两种类型转换有什么区别?

zy850919 2010-05-18 10:45:04

byte a = 251;
int b = Convert.ToInt32(a);
int c = (int)a;
Console.WriteLine(b);
Console.WriteLine(c);


Convert.ToInt32转换和(int)有什么区别?最后的结果都一样。我所知道两者不同就是Convert.ToInt32会做溢出检查,而(int)不会做溢出检查,还有别的没有?还有个问题,我也经常用Parse转换,我也不知道Parse和以上两者有什么不同。高手指点一下,谢谢!
...全文
109 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
铛铛 2010-05-18
  • 打赏
  • 举报
回复
int , float , double 可用"(int)t"
懂?
zy850919 2010-05-18
  • 打赏
  • 举报
回复
嗯,看懂了。受教了,谢谢,结贴,给分。
lanfengsese 2010-05-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 computerfox 的回复:]
Convert.ToInt32有N个版本的重载:
支持将很多类型的数据转成32位有符号整数。

而(int)转型时,支持的类型有限。
例如:

C# code
bool t = true;
int a = (int)t;

会提示无法将bool转换成int,而ToInt32(Boolean) 支持!

Parse方法道理相同,……
[/Quote]
学习
okok0987609876 2010-05-18
  • 打赏
  • 举报
回复
没有区别,只是有的必须用Convert才行。
一克代码 2010-05-18
  • 打赏
  • 举报
回复
学习!

up
捷哥1999 2010-05-18
  • 打赏
  • 举报
回复
Convert.ToInt32有N个版本的重载:
支持将很多类型的数据转成32位有符号整数。

而(int)转型时,支持的类型有限。
例如:
            bool t = true;
int a = (int)t;

会提示无法将bool转换成int,而ToInt32(Boolean) 支持!

Parse方法道理相同,例如int32的Parse,支持:
Parse(String) 将数字的字符串表示形式转换为它的等效 32 位有符号整数。
Parse(String, NumberStyles) 将指定样式的数字的字符串表示形式转换为它的等效 32 位有符号整数。
Parse(String, IFormatProvider) 将指定的区域性特定格式的数字的字符串表示形式转换为它的等效 32 位有符号整数。
Parse(String, NumberStyles, IFormatProvider) 将指定样式和区域性特定格式的数字的字符串表示形式转换为它的等效 32 位有符号整数。
lexfu 2010-05-18
  • 打赏
  • 举报
回复
这个还真不好说,估计要看它们的内部实现了

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧