.NET 類別庫概觀
.NET API 包含類別、介面、委派和值類型,以加速和最佳化開發過程並提供對系統功能的存取。 為了促進語言之間的互通性,大部分 .NET 類型符合 CLS 標準,因而可以透過其編譯器符合 Common Language Specification (CLS) 的任何程式設計語言來使用。
.NET 類型是建置 .NET 應用程式、元件和控制項的基礎。 .NET 包含執行下列函式的類型:
- 代表基底資料型別和例外狀況
- 封裝資料結構
- 執行 I/O
- 存取有關已載入型別的資訊
- 叫用 .NET 安全性檢查。
- 提供資料存取、豐富型用戶端 (Rich Client) GUI 和伺服器控制的用戶端 GUI
.NET 提供相當豐富的介面,以及抽象和具體 (非抽象) 類別。 您可以使用原來的具體類別,或在許多狀況中從它們衍生您自己的類別。 若要使用介面的功能,您可以建立實作介面的類別,或者從實作介面的 .NET 類別之一來衍生類別。
命名規範
.NET 類型使用意味著階層架構的點語法命名配置。 這個技術將相關的型別群組至命名空間 (Namespace),所以可以更容易地搜尋和參考它們。 完整名稱的第一部分—直到最右邊的點—是命名空間名稱。 最後部分是型別名稱。 例如,System.Collections.Generic.List<T>
代表 List<T>
型別,其屬於 System.Collections.Generic
命名空間。 System.Collections.Generic 中的型別可以用來處理泛型集合。
這個命名配置使得程式庫開發人員更容易擴充 .NET 以建立階層式類型群組,並以一致且有意義的方式加以命名。 此外還允許以完整名稱明確識別型別 (也就是藉由命名空間和型別名稱),其可避免型別名稱衝突。 程式庫開發人員為其命名空間建立名稱時,應使用以下命名慣例:
CompanyName.TechnologyName
例如,Microsoft.Word
命名空間符合這個方針。
使用命名模式將相關的型別群組至命名空間,是建置和記錄類別庫非常有用的方式。 然而,這個命名配置在可視性、成員存取、繼承 (Inheritance)、安全性或繫結上沒有作用。 命名空間可以在多重組件 (Assembly) 之間分割,而單一組件可以包含來自多重命名空間的型別。 組件在 Common Language Runtime 中提供版本、部署、安全性、載入和可視性的正式結構。
如需命名空間和類型名稱的詳細資訊,請參閱一般型別系統。
System 命名空間
System 命名空間是 .NET 中基本類型的根命名空間。 這個命名空間包含的類別,代表所有應用程式使用的基底資料型別,例如 Object (繼承階層架構的根)、Byte、Char、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) 的物件表示,以及對 URI 各部分的簡易存取。
- DateTime - 代表時間的瞬間,通常以一天的日期和時間表示。
公用程式 API
.NET 包含一組公用程式 API,以提供用於執行許多重要工作的功能。
- HttpClient - 此 API 可用於傳送 HTTP 要求,以及從 URI 所識別的資源接收 HTTP 回應。
- XDocument - 此 API 可用於載入,以及使用 LINQ 查詢 XML 文件。
- 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。