隱含數值轉換表 (C# 參考)
更新:2007 年 11 月
下表顯示預先定義的隱含數值轉換。隱含轉換可能發生在許多狀況,包括方法叫用和指派陳述式。
從 |
到 |
---|---|
short、int、long、float、double 或 decimal |
|
short、ushort、int、uint、long、ulong、float、double 或 decimal |
|
int、long、float、double 或 decimal |
|
int、uint、long、ulong、float、double 或 decimal |
|
long、float、double 或 decimal |
|
long、ulong、float、double 或 decimal |
|
float、double 或 decimal |
|
ushort、int、 uint、 long、ulong、 float、 double 或 decimal |
|
double |
|
float、 double 或 decimal |
備註
從 int、uint 或 long 轉換至 float,或從 long 轉換至 double 可能會遺失精確度,但不會遺失範圍。
char 型別沒有隱含轉換。
浮點型別和 decimal 型別之間沒有隱含轉換。
如果常數運算式的值是在目的型別的範圍之內,則 int 型別的常數運算式可以轉換成 sbyte、byte、short、ushort、uint 或 ulong。
C# 語言規格
如需詳細資訊,請參閱 C# 語言規格 (C# 語言規格):
6.1 隱含轉換
7.15 常數運算式