C#中的数据类型有两种转换方式:隐式转换和显式转换,即强制转换,也可以用类型转换方法来进行命令式显式转换。
1)隐式转换
与C++一样,当转换不会造成信息丢失时,C# 一般会采用自动的隐式转换(implicit conversion)。隐式转换包括对数值、枚举和引用的隐式转换。隐式转换可以发生在方法调用、表达式计算和分配时。但是不存在到字符类型char的隐式转换。数值类型的隐式转换参见表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 |
被转换类型 |
可安全转换到的类型 |
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 |
方法 |
功能 |
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位无符号整数。 |
新闻热点
疑难解答