實值型別表
實值型別 |
類別 |
bool |
布爾型 |
byte |
無符號、數值、整數 |
char |
無符號、數值、整數 |
decimal |
數值、十進位 |
double |
數值、浮點 |
enum |
枚舉 |
float |
數值、浮點 |
int |
有符號、數值、整數 |
long |
有符號、數值、整數 |
sbyte |
有符號、數值、整數 |
short |
有符號、數值、整數 |
struct |
使用者定義的結構 |
uint |
無符號、數值、整數 |
ulong |
無符號、數值、整數 |
ushort |
無符號、數值、整數 |
整型表
類型 |
範圍 |
大小 |
sbyte |
-128 到 127 |
有符號 8 位整數 |
byte |
0 到 255 |
無符號 8 位整數 |
char |
U+0000 到 U+ffff |
16 位 Unicode 字元 |
short |
-32,768 到 32,767 |
有符號 16 位整數 |
ushort |
0 到 65,535 |
無符號 16 位整數 |
int |
-2,147,483,648 到 2,147,483,647 |
有符號 32 位整數 |
uint |
0 到 4,294,967,295 |
無符號 32 位整數 |
long |
-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
有符號 64 位元整數 |
ulong |
0 到 18,446,744,073,709,551,615 |
無符號 64 位元整數 |
浮點型表
類型 |
大致範圍 |
精度 |
float |
±1.5e−45 到 ±3.4e38 |
7 位 |
double |
±5.0e−324 到 ±1.7e308 |
15 到 16 位 |
內建類型表
C# 類型 |
.NET Framework 類型 |
bool |
System.Boolean |
byte |
System.Byte |
sbyte |
System.SByte |
char |
System.Char |
decimal |
System.Decimal |
double |
System.Double |
float |
System.Single |
int |
System.Int32 |
uint |
System.UInt32 |
long |
System.Int64 |
ulong |
System.UInt64 |
object |
System.Object |
short |
System.Int16 |
ushort |
System.UInt16 |
string |
System.String |
備忘
除了 object 和 string 外,表中的所有類型均稱為簡單類型。
預設值表
實值型別 |
預設值 |
bool |
false |
byte |
0 |
char |
'"0' |
decimal |
0.0M |
double |
0.0D |
enum |
運算式 (E)0 產生的值,其中 E 為 enum 標識符。 |
float |
0.0F |
int |
0 |
long |
0L |
sbyte |
0 |
short |
0 |
struct |
將所有的實值型別欄位設定為預設值並將所有的參考型別欄位設定為 null 時產生的值。 |
uint |
0 |
ulong |
0 |
ushort |
0 |
隱式數值轉換表
從 |
到 |
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 |
char |
ushort、int、 uint、 long、ulong、 float、double 或 decimal |
float |
double |
ulong |
float、 double 或 decimal |
備忘
從
int、
uint 或
long 到
float 的轉換以及從
long 到
double 的轉換的精度可能會降低,但數值大小不受影響。
不存在到
char 類型的隱式轉換。
不存在浮點型與
decimal 類型之間的隱式轉換。
int 類型的常數運算式可轉換為
sbyte、
byte、
short、
ushort、
uint 或
ulong,前提是常數運算式的值處於目標類型的範圍之內。
顯式數值轉換表
從 |
到 |
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 或 decimal |
decimal |
sbyte、 byte、 short、 ushort、 int、 uint、 long、 ulong、 char、 float 或 double |