作用 C++ 大小 C# 大小 .NET Framework類型 取值範圍 字尾
字元 char 1 sbyte 1 System.SByte -128~127
字元(無符号) unsigned char 1 byte 1 System.Byte 0~255
寬字元 wchar_t 2 char 2 System.Char
寬字元(無符号) unsigned wchar_t 2
邏輯值 bool 1 bool 1 System.Boolean true,false
短整數 short 2 short 2 System.Int16
-32,768 .. 32,767
短整數(無符号) unsigned short 2 ushort 2 System.UInt16 0~65535(2的16次方)
整數 int 4 int 4 System.Int32
-2,147,483,648 .. 2,147,483,647
整數(無符号) unsigned int 4 uint 4 System.UInt32
0 .. 4,294,967,295
長整型 long 8 long 8 System.Int64
-9,223,372,036,854,775,808 .. 9,223,372,036,854,775,807
L (最好用大寫,因為小寫l容易與1混淆)
長整型(無符号) unsigned long 8 ulong 8 System.UInt64
0 .. 18,446,744,073,709,551,615
單精度實數 float 4 float 4 System.Single
-3.402823e38 .. 3.402823e38
雙精度實數 double 8 double 8 System.Double
-1.79769313486232e308 .. 1.79769313486232e308
d
長雙精度實數 long double 10 decimal 16 System.Decimal
-79228162514264337593543950335 .. 79228162514264337593543950335
m
字元串 string string System.String
對象 object System.Object
有些朋友會問到,那麼日期呢?DataTime不是基礎類型,而是一個特殊的類(C++),或者說是一個結構體(C#),和其他類或者結構一樣。他也沒有預定義的大小,
定義類型别名
C++中,使用typedef關鍵字 : typedef short Age; C#中,使用using關鍵字 : using Age = System.Int16;
題外話: 下面還有一個SQL Server資料類型與C#類型的比較。我就不整理了,直接摘錄自網絡
SQL Server 2000
C#
CodeSmith
資料類型
取值範圍
空值代替值
bigint
-2^63 (-9,223,372,036,854,775,807) 至 2^63-1 (9,223,372,036,854,775,807)
Int64
-9,223,372,036,854,775,808;即十六進制的 0x8000000000000000至9,223,372,036,854,775,807;即十六進制的 0x7FFFFFFFFFFFFFFF
Int64.MinValue
binary
固定長度的 n 個位元組二進制資料。N 必須從 1 到 8,000。存儲空間大小為 n+4 位元組。
Byte[]
null
Binary
bit
True,False
enum
0,1,-1(使用一個枚舉變量來代替)
public enum bitNull
{
False,
True,
Null = -1
};
-1
Boolean
char
長度為 n 個位元組的固定長度且非 Unicode 的字元資料。n 必須是一個介于 1 和 8,000 之間的數值。存儲大小為 n 個位元組。
string
AnsiStringFixedLength
datetime
存儲從 1753 年 1 月 1 日至 9999 年 12 月 31 日的日期(每個數值要求8 個位元組的存儲空間)
DateTime
0001 年 1 月 1 日 00:00:00 .0000000至9999 年 12 月 31 日 23:59:59.9999999
1753-01-01 0:00:00
decimal
從 - 10^38 +1 到 10^38 - 1
Decimal
-79,228,162,514,264,337,593,543,950,335至79,228,162,514,264,337,593,543,950,335
Decimal.MinValue
float
從 - 1.79E + 308 到 1.79E + 308 之間的浮點數字資料
Double
-1.79769313486232e308至+1.79769313486232e308
Double.MinValue
image
可變長度二進制資料介于 0 與 231-1 (2,147,483,647) 位元組之間。
int
從 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型資料(所有數字)
-2,147,483,648 到 2,147,483,647
-2147483648
Int32
money
貨币資料值介于 -2^63 (-922,337,203,685,477.5808) 與 2^63 - 1 (+922,337,203,685,477.5807) 之間,精确到貨币機關的千分之十。存儲大小為 8 個位元組。
Single
-3.402823e38至+3.402823e38
Single.MinValue
Currency
nchar
至多為 4000 個 Unicode 字元
StringFixedLength
ntext
可變長度 Unicode 資料的最大長度為230 - 1 (1,073,741,823) 個字元。存儲大小是所輸入字元個數的兩倍(以位元組為機關)。
String
numeric
使用最大精度時,有效值從 - 10^38 +1 到 10^38 – 1
nvarchar
包含 n 個字元的可變長度 Unicode 字元資料。n 的值必須介于 1 與 4,000 之間。
real
從 ?3.40E + 38 到 3.40E + 38 之間的浮點數字資料。存儲大小為 4 位元組。
smalldatetime
從 1900 年 1 月 1 日至 2079 年 6 月 6 日的日期(每個數值要求 4 個位元組的存儲空間)。
1900-01-01 0:00:00
smallint
從 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型資料。存儲大小為 2個位元組。
Int16
-32768至32767
Int16.MinValue
smallmoney
貨币資料值介于 -214,748.3648 與 +214.748,3647 之間,精确到貨币機關的千分之十。存儲大小為 4 個位元組。
sql_variant
在SQL Server 2000中不支援大資料類型text, ntext, image, timestamp,其他類型均支援
Object
text
伺服器代碼頁中的可變長度非 Unicode 資料的最大長度為 231-1 (2,147,483,647) 個字元。當伺服器代碼頁使用雙位元組字元時,存儲量仍是 2,147,483,647 位元組。存儲大小可能小于 2,147,483,647 位元組(取決于字元串)。
AnsiString
timestamp
timestamp 這種資料類型表現自動生成的二進制數,確定這些數在資料庫中是唯一的。timestamp 一般用作給表行加版本戳的機制。存儲大小為 8位元組。
tinyint
從 0 到 255 的整型資料。存儲大小為1 位元組。
Byte
0至255
Byte.MinValue
uniqueidentifier
存儲 16 位元組的二進制值,該值的使用與全局唯一辨別符 (GUID) 一樣。GUID 是一個唯一的二進制數字;世界上的任何兩台計算機都不會生成重複的 GUID 值。GUID 主要用于在擁有多個節點、多台計算機的網絡中,配置設定必須具有唯一性的辨別符。
Guid
Guid.Empty
varbinary
n 個位元組變長二進制資料。n 必須從 1到 8,000。存儲空間大小為實際輸入資料長度 +4 個位元組,而不是 n 個位元組。輸入的資料長度可能為 0 位元組。
varchar
長度為 n 個位元組的可變長度且非 Unicode 的字元資料。n 必須是一個介于 1 和 8,000 之間的數值。存儲大小為輸入資料的位元組的實際長度,而不是 n個位元組。所輸入的資料字元長度可以為零。