分享

强制类型转换

 修行的嘟嘟 2011-05-05

1.(int)变量名[强制类型转换]

    该转换方式主要用于数字类型之间的转换,从int类型向long,float,double,decimal 类型转换可以使用隐式转换,但从long型到int 就需要使用显示转换,即使用该类型的转换方式否则产生编译错误。

  该方式对于浮点数会无条件的舍去,会失去精确度

  对于char类型的到int类型的转换,传回的值是ASCII码

2.int.Parse(string 变量名)

  该方式是将数字内容的字符串转换为int类型,如果字符串的内容为Null ,则抛出ArgumentNullException异常;如果字符串内容不是数字,则抛出FormatException异常。

  使用该方法只能处理字符串的内容,而且转换后的字符串内容要在int类型的可表示范围之内

3.int.TryParse(string s, out int result)

  该方式也是将数字内容的字符串转换为int类型,但是该方式有比int.Parse 优越的地方,就是它不会出现异常,最后一个参数result是输出值,如果转换成功则输出相应的值,转换失败则输出0。

4. Convert.ToInt32

  该方式不仅可以将字符串类型转换为int,还可以将其他的类型转换为int。变量若为object或string类型,当其值为Nul时,会传回0,不会造成程序错误,但是若此string类型的值为string.Empty,转换成int时,程序仍会出错。

  该方式对于float类型做四舍五入。

  该方式同强制类型转换一样在处理char类型的时候,返回的都是ASCII码
 
5.

Employee e = o as Employee;if(e!=null){//在if语句中使用e}在这段代码中,CLR首先核实o是否兼容于Employee;如果是,as 将返回对同一个对象的非null引用。如果不兼容,as则会返回Null值。由于as操作符造成CLR只校验一次对象的类型。if语句只检查e是否为null.这个检查速度比校验类型快的多。as操作符的工作方式与强制类型转换一样,只是它永远不会抛出异常。

但是as 不能用于值类型而is却可以。例如如下代码将无法编译
object o = Factory.GetValue( );
int i = o as int;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多