博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET类型转型的四种做法(转)
阅读量:4316 次
发布时间:2019-06-06

本文共 1543 字,大约阅读时间需要 5 分钟。

.NET类型转型的四种做法:

◆ 强制转型:(int)变量名称

◆ int.Parse(字符串变量名称)

◆ Convert.To类型(变量名称)

◆ TryParse


强制转型 (casting)

◆ 浮点数会做无条件舍去,失去精确度

◆ 可处理 object 转 int,但遇到 object 为 null 时会产生 error

◆ 某些情况下,如 object 转型成 int,有时正常,但有时会无故发生 error,原因不明

◆ 无法处理 string 转 int (程序中常会用到的功能)

◆ 千万不可用来处理 char 类型,否则传回的是 ASCII 码,而不是字面上的数字

int.Parse(字符串变量名称)

◆ 只能处理 string 转 int 或其它类型,无法处理 string 以外的类型,功能有限

◆ 遇到 string 为 null 或 string.Empty 时,仍会造成程序 error

◆ 亦可变化使用:「类型.Parse(string)」,但参数只能丢 string

Convert.To类型(变量名称)

◆ 可处理所有 .NET 的类型、功能完整

◆ 可处理 null,几乎不会因转型造成程序 error

◆ 透过「Convert.ToInt32(变量)」转型成 int 时,变数若为 object 或 string 类型,当其值为 null 时,会传回 0,不会造成程序 error

◆ 续前一点,若此 string 类型的变量,其原始值为 string.Empty,在转型成 int 时,仍会造成程序 error

◆ 浮点数会做四舍五入

◆ 千万不可用来处理 char 类型,否则传回的是 ASCII 码,而不是字面上的数字

测试范例:

protected void Page_Load(object sender, EventArgs e){    char i1 = '0';    char i2 = '9';    string i1 = null;    string i2 = "9";    string i3 = string.Empty;     int i1 = 0;    int i2 = 9;    double i1 = 1.2345;    double i2 = 1.5678;    object i1 = null;    object i2 = 9;    // 浮点数会做无条件舍去,某些情况会无故产生 error    Response.Write((int)i1 + ", " + (int)i2 + "<br>");    // 只能处理「字符串」转型成其它类型,功能有限    Response.Write(int.Parse(i1) + ", " + int.Parse(i2) + "<br>");      // 可处理所有类型及 Null,但浮点数会做四舍五入。推荐使用,但不可处理 char 类型    Response.Write(Convert.ToInt32(i1) + ", " + Convert.ToInt32(i2) + "<br>");  }

遇到要特别注意数字、金额精确度的项目时,应特别注意。

TryParse

这个方法是 .NET Framework 2.0 版的新功能。将数字的字串表示转换成它的对等32 位元帶正负号的整数。传回指示作业是否成功的值。 TryParse 方法与 Parse 方法类似,除了TryParse 方法在转换失败時不会掷回例外状况以外。

转载于:https://www.cnblogs.com/seely/p/4364954.html

你可能感兴趣的文章
Django中HtttpRequest请求
查看>>
K-Means聚类和EM算法复习总结
查看>>
彻底卸载MySql
查看>>
[转]Bat脚本处理ftp超强案例解说
查看>>
P3901 数列找不同
查看>>
poj2516
查看>>
输出的文本实现对齐
查看>>
C#WPF实现回溯算法解决八皇后问题
查看>>
EXT.NET Toolbar GridPanel主动宽度和高度的解决规划,引入Viewport
查看>>
the security settings could not be applied to the database(mysql安装error)【简记】
查看>>
搭建无线局域网:因地制宜
查看>>
利用无线网络数据包分析无线网络安全
查看>>
MEMBER REPORT
查看>>
[HAOI2006]受欢迎的牛
查看>>
使用jquery去掉时光轴头尾部的线条
查看>>
算法(转)
查看>>
IT职场人生系列之十五:语言与技术II
查看>>
如何在FreePBX ISO 中文版本安装讯时网关,潮流16FXS 网关和潮流话机
查看>>
基于Wolfpack开发业务监控系统
查看>>
通过Jexus 部署 dotnetcore版本MusicStore 示例程序
查看>>