.NET API 包含類別、介面、委派和實值型別,可加速和優化開發程式,並提供系統功能的存取權。 為了促進語言之間的互作性,大部分的 .NET 類型都符合CLS規範,因此可以從編譯程式符合通用語言規格 (CLS) 的任何程式設計語言使用。
.NET 類型是建置 .NET 應用程式、元件和控件的基礎。 .NET 包含執行下列函式的類型:
- 表示基底數據類型和例外狀況。
- 封裝數據結構。
- 執行 I/O。
- 存取已載入類型的相關信息。
- 叫用 .NET 安全性檢查。
- 提供資料存取、豐富的用戶端圖形使用者介面(GUI),以及由伺服器控制的用戶端圖形使用者介面。
.NET 提供一組豐富的介面,以及抽象和具象(非抽象)類別。 您可以使用具體類別 as-is,或在許多情況下,從它們衍生您自己的類別。 若要使用介面的功能,您可以建立實作 介面的類別,或從其中一個實作 介面的 .NET 類別衍生類別。
命名慣例
.NET 類型使用表示階層的點語法命名配置。 這項技術會將相關的類型分組為命名空間,以便更輕鬆地搜尋和參考它們。 完整名稱的第一個部分,直到最右邊的點為止,就是命名空間名稱。 名稱的最後一個部分是類型名稱。 例如,System.Collections.Generic.List<T>
表示類型 List<T>
,它屬於 System.Collections.Generic
命名空間。 中的 System.Collections.Generic 型別可用來處理泛型集合。
此命名配置可讓連結庫開發人員輕鬆地擴充 .NET 來建立類型的階層式群組,並以一致且具資訊的方式命名它們。 它也允許以完整名稱明確識別類型(亦即,依其命名空間和類型名稱),以防止類型名稱衝突。 連結庫開發人員在為其命名空間建立名稱時,應該使用下列慣例:
CompanyName。TechnologyName
例如,命名空間 Microsoft.Word
符合此指導方針。
使用命名模式將相關類型分組為命名空間是建置和檔案類別庫的實用方式。 不過,此命名配置不會影響可見度、成員存取、繼承、安全性或系結。 命名空間可以分割到多個元件,而單一元件可以包含來自多個命名空間的類型。 組件在通用語言運行時中提供版本管理、部署、安全性、載入和可見性的正式結構。
如需命名空間和類型名稱的詳細資訊,請參閱 Common Type System。
系統命名空間
命名空間 System 是 .NET 中基本類型的根命名空間。 此命名空間包含類別,這些類別代表所有應用程式所使用的基底資料類型, Object 例如,(繼承階層的根目錄)、、ByteChar、Array、 Int32和 String。 其中許多類型會對應到程式設計語言所使用的基本數據類型。 當您使用 .NET 類型撰寫程式代碼時,可以在預期 .NET 基底數據類型時使用語言的對應關鍵詞。
下表列出 .NET 提供的基底類型、簡短描述每個類型,並指出 Visual Basic、C#、C++ 和 F# 中的對應類型。
類別 | 類別名稱 | 說明 | Visual Basic 資料類型 | C# 資料類型 | C++/CLI 數據類型 | F# 資料類型 |
---|---|---|---|---|---|---|
整數 | Byte | 8 位無符號整數。 | Byte |
byte |
unsigned char |
byte |
SByte | 8 位帶正負號的整數。 不符合 CLS 規範。 |
SByte |
sbyte |
char 或 signed char |
sbyte |
|
Int16 | 16 位元帶正負號的整數。 | Short |
short |
short |
int16 |
|
Int32 | 32 位元帶正負號的整數。 | Integer |
int |
int 或 long |
int |
|
Int64 | 64 位元帶正負號的整數。 | Long |
long |
__int64 |
int64 |
|
UInt16 | 16 位元不帶正負號的整數。 不符合 CLS 規範。 |
UShort |
ushort |
unsigned short |
uint16 |
|
UInt32 | 32 位元不帶正負號的整數。 不符合 CLS 規範。 |
UInteger |
uint |
unsigned int 或 unsigned long |
uint32 |
|
UInt64 | 64 位無符號整數。 不符合 CLS 規範。 |
ULong |
ulong |
unsigned __int64 |
uint64 |
|
浮點 | Half | 半精確度 (16 位) 浮點數。 | ||||
Single | 單精度 (32 位) 浮點數。 | Single |
float |
float |
float32 或 single |
|
Double | 雙精確度 (64 位) 浮點數。 | Double |
double |
double |
float 或 double |
|
合乎邏輯的 | Boolean | 布爾值 (true 或 false)。 | Boolean |
bool |
bool |
bool |
其他 | Char | Unicode (16 位) 字元。 | Char |
char |
wchar_t |
char |
Decimal | 十進位 (128 位) 值。 | Decimal |
decimal |
Decimal |
decimal |
|
IntPtr | 帶正負號的整數,其大小取決於基礎平臺(32 位平臺上的 32 位值,以及 64 位平臺上的 64 位值)。 | nint |
unativeint |
|||
UIntPtr | 不帶正負號的整數,其大小取決於基礎平臺(32 位平臺上的 32 位值,以及 64 位平臺上的 64 位值)。 不符合 CLS 規範。 |
nuint |
unativeint |
|||
Object | 物件階層的根部。 | Object |
object |
Object^ |
obj |
|
String | 一個不可變且固定長度的 Unicode 字元串。 | String |
string |
String^ |
string |
除了基底數據類型之外, System 命名空間還包含超過100個類別,範圍從處理例外狀況的類別到處理核心運行時間概念的類別,例如應用程式域和垃圾收集行程。 命名空間 System 也包含許多第二層命名空間。
如需命名空間的詳細資訊,請使用 .NET API 瀏覽器 流覽 .NET 類別庫。 API 參考文件提供了關於每個命名空間、其類型及其成員的詳細說明。
資料結構
.NET 包含一組數據結構,這些結構是許多 .NET 應用程式的工作組。 這些大部分是集合,但也包含其他類型的集合。
- Array - 代表可使用索引存取的強類型物件陣列。 依其建構具有固定大小。
- List<T> - 表示可依索引存取的強型別物件清單。 會根據需要自動調整大小。
- Dictionary<TKey,TValue> - 表示由鍵索引的值集合。 值可以透過索引鍵存取。 會根據需要自動調整大小。
- Uri - 提供統一資源標識符的物件表示法,以及輕鬆存取 URI 的各個部分。
- DateTime - 代表時間的瞬間,通常以一天的日期和時間表示。
公用程式 API
.NET 包含一組公用程式 API,可為許多重要工作提供功能。
- HttpClient - 用來傳送 HTTP 要求,並從 URI 所識別的資源接收 HTTP 回應的 API。
- XDocument - 使用 LINQ 載入和查詢 XML 檔案的 API。
- StreamReader - 用於讀取檔案的 API。
- StreamWriter - 用於寫入檔案的 API。
應用程式模型 API
有許多應用程式模型可以搭配 .NET 使用,例如:
- ASP.NET - 建置網站和服務的Web架構。 在 Windows、Linux 和 macOS 上支援 (視 ASP.NET 版本而定)。
- .NET MAUI - 使用 C# 建置在 Windows、macOS、iOS 和 Android 上執行的原生應用程式的應用程式平臺。
- Windows 桌面 - 包含 Windows Presentation Foundation (WPF) 和 Windows Forms。