首 页IT知识库收藏内容
当前位置:翔宇亭IT乐园IT知识库C#C#基础

C#数据类型的转换方法

减小字体 增大字体 作者:不详  来源:转载  发布时间:2010-09-09 20:20:00

C#中的数据类型有两种转换方式:隐式转换和显式转换,即强制转换,也可以用类型转换方法来进行命令式显式转换。

1)隐式转换

与C++一样,当转换不会造成信息丢失时,C# 一般会采用自动的隐式转换(implicit conversion)。隐式转换包括对数值、枚举和引用的隐式转换。隐式转换可以发生在方法调用、表达式计算和分配时。但是不存在到字符类型char的隐式转换。数值类型的隐式转换参见表17-8。

17-8 隐式数值类型转换
被转换类型
可安全转换到的类型
sbyte
short、int、long、float、double、decimal
byte
short、ushort、int、uint、long、ulong、float、double、decimal
short
int、long、float、double、decimal
ushort
int、uint、long、ulong、float、double、decimal
int
long、float、double、decimal
uint
long、ulong、float、double、decimal
long
float、double、decimal
ulong
float、double、decimal
float
double
char
ushort、int、uint、long、ulong、float、double、decimal
2)显式转换
与C++一样,C# 中的显式转换(implicit conversion)也是指使用强制转换(cast)运算符“(类型)”进行的类型转换。如果显式转换位于“已检验”(checked)上下文内,在被转换的值超出目标类型的取值范围时,会导致OverflowException异常,这是C# 新增的观念。如果显式转换位于“未检验”(unchecked)上下文内,则不会抛出异常,但是转换行为会不明确也不可靠,这点与C++类似。表17-9列出了可以安全进行显式转换的类型。
17-9 显式数值类型转换
被转换类型
可安全转换到的类型
sbyte
byte、ushort、uint、ulong、char
byte
sbyte、char
short
sbyte、byte、ushort、uint、ulong、char
ushort
sbyte、byte、short、char
int
sbyte、byte、short、ushort、uint、ulong、char
uint
sbyte、byte、short、ushort、char
long
sbyte、byte、short、ushort、int、uint、ulong、char
ulong
sbyte、byte、short、ushort、int、uint、long、char
float
sbyte、byte、short、ushort、int、uint、long、ulong、decimal、char
double
sbyte、byte、short、ushort、int、uint、long、ulong、float、decimal、char
decimal
sbyte、byte、short、ushort、int、uint、long、ulong、float、double、char
char
sbyte、byte、short
3)命令转换
除了上面所介绍的隐式和显式转换外,在C# 中还可以利用.NET的System.Convert类提供的一套公用静态的转换方法,来进行显式类型转换,参见表17-10。
17-10 显式类型转换的静态方法
方法
功能
ToBoolean
将指定的值转换为等效的布尔值。
ToByte
将指定的值转换为8位无符号整数。
ToChar
将指定的值转换为Unicode字符。
ToDateTime
将指定的值转换为DateTime
ToDecimal
将指定值转换为Decimal数字。
ToDouble
将指定的值转换为双精度浮点数字。
ToInt16
将指定的值转换为16位有符号整数。
ToInt32
将指定的值转换为32位有符号整数。
ToInt64
将指定的值转换为64位有符号整数。
ToSByte
将指定的值转换为8位有符号整数。
ToSingle
将指定的值转换为单精度浮点数字。
ToString
将指定值转换为其等效的String表示形式。
ToUInt16
将指定的值转换为16位无符号整数。
ToUInt32
将指定的值转换为32位无符号整数。
ToUInt64
将指定的值转换为64位无符号整数。
例如:
using System;
int i = 1234;
Conver.ToInt16(i);

本文源自:翔宇亭——IT乐园(http://www.biye5u.com),转载请保留此信息!

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2024 biye5u.com. All Rights Reserved.