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位無符號整數。 |
新聞熱點
疑難解答