我很想知道与使用Convert.toInt32()相比,演员之间的区别是什么.使用一个可以获得某种性能提升吗?
还应该使用哪些情况.目前我更倾向于使用转换,但我没有理由去任何一种方式.在我看来,我看到他们都实现了同一个目标.
Gre*_*reg 76
当它真的是一种类型的int时候转换,转换它不是一个int但你希望它成为一个.
例如,int i = (int)o;当你知道o是一个int
int i = Convert.ToInt32("123") 因为"123"不是int,所以它是int的字符串表示.
Dav*_*vid 39
请参阅另一个论坛上的差异转换和转换
在
Convert.ToInt32(String, IFormatProvider)下面调用Int32.Parse(读的话).
所以唯一的区别是,如果传递一个空字符串,它会返回0,而Int32.Parse抛出一个ArgumentNullException.
无论您使用哪种方式,这都是一个选择问题.
就个人而言,我既不使用,也倾向于使用这些TryParse功能(例如System.Int32.TryParse()).
顶部的链接已损坏,请参阅StackOverflow上的此答案.
Seb*_*Seb 11
还有另一个不同之处."转换"始终是溢出检查,而"转换"可能是,取决于您的设置和使用的"已选中"或"未选中"关键字.
更明确.考虑一下代码:
int source = 260;
byte destination = (byte)source;
Run Code Online (Sandbox Code Playgroud)
然后目的地将是4而没有警告.
但:
int source = 260;
byte destination = Convert.ToByte(source);
Run Code Online (Sandbox Code Playgroud)
会给你一个例外.
并非所有类型都支持转换
int i = 0;
decimal d = (decimal)i;
Run Code Online (Sandbox Code Playgroud)
因为需要实现显式运算符.但.NET也提供IConvertible接口,因此任何类型实现该接口都可以转换为大多数框架内置类型.最后,Convert类有助于使用类型实现IConvertible接口.