摘要:[Framework基礎] 原生型別
這邊要跟大家分享的是原生型別,原生型別在程式語言中是很多人所關心的,尤其是像JAVA、C/C++等這些型態嚴謹的語言,型別的使用本身就是一們相當大的技術,好的資料結構要配合正確的資料型態,才能發揮用途,在巨量資料的處理上,稍有差池,你和競爭者的伯仲立現當前。而在 .NET Framework 中花花綠綠的各種型態,許多人拿到 Visual Studio 看著範例就複製貼上,只要能認的出來、點的出來的型態就用力用下去,相信你成為"資深"的 .NET 工程師後,也會和我一樣好奇 .NET 中的原生型態有哪些
在 .NET Framework 中包含了很多人一輩子都看不完的的函式、類別、介面還有各種經過優化的型態值。 為了讓型態在各種語言中可以通用, .NET 中的原生型別當然必須做到所謂的「CLS 相容」,CLS我暫且翻譯作「跨語言規範」,Common Language Specification (CLS) 的要求、目的或你也可以當成規範。
.NET Framework 的內建型別是 .NET應用程式的重要基礎,.NET 中的型別是要做出:
- 基本型態、例外
- 封裝的資料結構
- 實現資料輸入輸出
- 型態的資訊要能被存取
- 能呼叫 .NET Framework 的安全檢查機制
- 支援資料存取、用戶端圖形界面、伺服器控制等功能
在 .NET Framework 最大的特點莫過於:多到嚇人的介面、類別(包含抽象和實做好的),透過這些基底類別,你可以自由新增更多實用的類別。
System 是 .NET Framework 最根本最重要的名稱空間,這個名稱空間包含了各種基底型別如: Byte, Char, Array, Int32, String,而這些類型,你又可以用你習慣的語言像是 VB.NET 、C# 的別名參照到真正的 .NET 原生型別。
下表列出了別名的對應:
分類 | 類別名稱 | 描述 | Visual Basic 資料型態 | C# 資料型態 | Managed Extensions for C++ 資料型態 | JScript 資料型態 |
---|---|---|---|---|---|---|
Integer | Byte | An 8-bit unsigned integer. | Byte | byte | char | Byte |
SByte |
An 8-bit signed integer.
Not CLS-compliant. |
SByte
No built-in type. |
sbyte | signed char | SByte | |
Int16 | A 16-bit signed integer. | Short | short | short | short | |
Int32 | A 32-bit signed integer. | Integer | int |
int
-or- long |
int | |
Int64 | A 64-bit signed integer. | Long | long | __int64 | long | |
UInt16 |
A 16-bit unsigned integer.
Not CLS-compliant. |
UInt16
No built-in type. |
ushort | unsigned short | UInt16 | |
UInt32 |
A 32-bit unsigned integer.
Not CLS-compliant. |
UInt32
No built-in type. |
uint |
unsigned int
-or- unsigned long |
UInt32 | |
UInt64 |
A 64-bit unsigned integer.
Not CLS-compliant. |
UInt64
No built-in type. |
ulong | unsigned __int64 | UInt64 | |
Floating point | Single | A single-precision (32-bit) floating-point number. | Single | float | float | float |
Double | A double-precision (64-bit) floating-point number. | Double | double | double | double | |
Logical | Boolean | A Boolean value (true or false). | Boolean | bool | bool | bool |
Other | Char | A Unicode (16-bit) character. | Char | char | wchar_t | char |
Decimal | A 96-bit decimal value. | Decimal | decimal | Decimal | Decimal | |
IntPtr | A signed integer whose size depends on the underlying platform (a 32-bit value on a 32-bit platform and a 64-bit value on a 64-bit platform). |
IntPtr
No built-in type. |
IntPtr
No built-in type. |
IntPtr
No built-in type. |
IntPtr | |
UIntPtr |
An unsigned integer whose size depends on the underlying platform (a 32- bit value on a 32-bit platform and a 64-bit value on a 64-bit platform).
Not CLS-compliant. |
UIntPtr
No built-in type. |
UIntPtr
No built-in type. |
UIntPtr
No built-in type. |
UIntPtr | |
Class objects | Object | The root of the object hierarchy. | Object | object | Object* | Object |
String | An immutable, fixed-length string of Unicode characters. | String | string | String* | String |
除了基本的資料型態, 名稱空間 System 還有將近 100 個類別,包含例外、核心概念的應用像gc, System 中也包含很多次級的名稱空間。
引用翻譯自 http://msdn.microsoft.com/en-us/library/hfa3fa08(v=VS.71).aspx