使用 C# 中可用的許多資料類型時,選擇正確的資料類型表示您需要瞭解何時可以選擇一個數據類型,而別的數據類型。
在討論 為何 可能會選擇一種數據類型而別之前,您需要深入瞭解數據類型。 您也需要知道資料和數據類型在 C# 和 .NET 中的運作方式。
什麼是數據?
回答「什麼是數據」問題取決於您詢問的人員,以及您要詢問的內容。
在軟體開發中,數據基本上是儲存在計算機記憶體中作為一系列位的值。
位是表示為 0 或1的簡單二進位參數,或是 「關閉」和「開啟」。單一位似乎沒有用處,但是當您將 8 位結合在一個序列中時,它們會形成位元組。 在位元組中使用時,每個位都會採用序列中的意義。 事實上,如果您使用二進位 (base-2) 數字系統,您可以只代表 8 位的 256 種不同組合。
例如,在二進位數字系統中,您可以將數位 195 表示為 11000011。 下表可協助您將運作方式可視化。 第一個數據列有八個數據行,對應至位元組中的位置。 每個位置都代表不同的數值。 第二個資料列可以儲存個別位的值,或 01。
| 128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
| 1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
如果您從第一個數據列中對應至 1 第二個數據列的每一個數據行加起來數位,您會得到相當於二進位數字系統表示法的十進位數。 在這裡情況下,會是 128 + 64 + 2 + 1 = 195。
若要使用以外的 255較大值,您的計算機會儲存更多位元組(通常是32位或64位)。 如果您在科學設定中使用數百萬個大量數據,您可能需要更仔細地考慮您使用的數據類型。 您的程式代碼可能需要更多記憶體才能執行。
文字數據呢?
如果計算機只瞭解 0s 和 1,則它如何允許您使用文字? 使用 ASCII 之類的系統(美國資訊交換標準代碼),您可以使用單一位元組來代表大寫和小寫字母、數位、製表元、退格元、換行符和許多數學符號。
例如,如果您想要將小寫字母 a 儲存為我的應用程式中的值,則計算機只會瞭解該值的二進位格式。 若要進一步了解計算機如何處理小寫字母 a ,我需要找出提供 ASCII 值及其十進位對等值的 ASCII 數據表。 您可以搜尋 「ASCII lookup decimal」 字詞,以在在線尋找這類資源。
在這裡情況下,小寫字母 a 相當於十進位值 97。 然後,您會反向使用相同的二進位數字系統來尋找計算機如何儲存 ASCII 字母 a 。
| 128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
| 0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
因為 64 + 32 + 1 = 97,的 8 位二進位 ASCII 程式代碼 a 是 01100001。
您可能永遠不需要自行執行這些類型的轉換,但了解計算機的數據觀點是一個基本概念,特別是當您考慮數據類型時。
什麼是數據類型?
數據類型是程式設計語言定義要為值儲存多少記憶體的方式。 C# 語言有許多資料類型可用於許多不同的應用程式和數據大小。
對於您在職業生涯中建置的大部分應用程式,您將解決所有可用數據類型的一小部分。 然而,知道其他人的存在和原因仍然至關重要。
值與參考類型
本課程模組著重於 C# 中的兩種類型:參考類型和實值型別。
參考型別的變數會儲存其數據(物件)的參考,也就是它們指向儲存在別處的數據值。 相較之下,實值類型的變數會直接包含其數據。 當您深入瞭解 C# 時,新的詳細數據會與值與參考類型之間的基本差異相關。
簡單實值類型
簡單實值型別是 C# 提供的一組預先定義型別作為關鍵詞。 這些關鍵詞是 .NET 類別庫中所定義之預先定義型別的別名(昵稱)。 例如,C# 關鍵詞 int 是 .NET 類別庫中 System.Int32定義為 的值型別別名。
簡單實值型別包含您可能已使用的許多資料類型,例如 char 和 bool。 也有許多 整數 和 浮點 實值型別,代表廣泛的整數和小數點數。
回顧
- 值會儲存為位,這是簡單的開啟/關閉開關。 結合足夠的這些參數,可讓您儲存任何可能的值。
- 數據類型有兩個基本類別:值和參考型別。 差異在於當程式執行時,計算機儲存值的方式和位置。
- 簡單實值型別會使用關鍵詞別名來代表 .NET 連結庫中型別的正式名稱。