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位无符号整数。  | 
		
新闻热点
疑难解答