C# - 資料型別



C# 中的變數分為以下幾種型別:

  • 值型別
  • 引用型別
  • 指標型別

值型別

值型別變數可以直接賦值。它們派生自類 System.ValueType

值型別直接包含資料。一些示例包括int、char 和 float,它們分別儲存數字、字母和浮點數。當您宣告一個int型別時,系統會分配記憶體來儲存該值。

下表列出了 C# 2010 中可用的值型別:

型別 表示 範圍 預設值
bool 布林值 True 或 False False
byte 8 位無符號整數 0 到 255 0
char 16 位 Unicode 字元 U +0000 到 U +ffff '\0'
decimal 128 位精確十進位制值,具有 28-29 位有效數字 (-7.9 x 1028 到 7.9 x 1028) / 100 到 28 0.0M
double 64 位雙精度浮點數型別 (+/-)5.0 x 10-324 到 (+/-)1.7 x 10308 0.0D
float 32 位單精度浮點數型別 -3.4 x 1038 到 + 3.4 x 1038 0.0F
int 32 位有符號整數型別 -2,147,483,648 到 2,147,483,647 0
long 64 位有符號整數型別 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 0L
sbyte 8 位有符號整數型別 -128 到 127 0
short 16 位有符號整數型別 -32,768 到 32,767 0
uint 32 位無符號整數型別 0 到 4,294,967,295 0
ulong 64 位無符號整數型別 0 到 18,446,744,073,709,551,615 0
ushort 16 位無符號整數型別 0 到 65,535 0

要獲取特定平臺上型別或變數的確切大小,可以使用sizeof方法。表示式sizeof(type)以位元組為單位產生物件或型別的儲存大小。以下是如何獲取任何機器上int型別大小的示例:

using System;

namespace DataTypeApplication {
   class Program {
      static void Main(string[] args) {
         Console.WriteLine("Size of int: {0}", sizeof(int));
         Console.ReadLine();
      }
   }
}

當以上程式碼編譯並執行時,會產生以下結果:

Size of int: 4

引用型別

引用型別不包含儲存在變數中的實際資料,而是包含對變數的引用。

換句話說,它們引用一個記憶體位置。使用多個變數,引用型別可以引用一個記憶體位置。如果一個變數更改了記憶體位置中的資料,則其他變數會自動反映此值變化。內建引用型別的示例包括:object、dynamic 和 string

物件型別

物件型別是 C# 公共型別系統 (CTS) 中所有資料型別的最終基類。Object 是 System.Object 類的別名。物件型別可以分配任何其他型別的值,包括值型別、引用型別、預定義型別或使用者定義型別。但是,在分配值之前,需要進行型別轉換。

當值型別轉換為物件型別時,稱為裝箱,反之,當物件型別轉換為值型別時,稱為拆箱

object obj;
obj = 100; // this is boxing

動態型別

您可以將任何型別的值儲存在動態資料型別變數中。這些型別變數的型別檢查在執行時進行。

宣告動態型別的語法如下:

dynamic <variable_name> = value;

例如,

dynamic d = 20;

動態型別類似於物件型別,區別在於物件型別變數的型別檢查在編譯時進行,而動態型別變數的型別檢查在執行時進行。

字串型別

字串型別允許您將任何字串值分配給變數。字串型別是 System.String 類的別名。它派生自物件型別。字串型別的值可以使用兩種形式的字串文字進行分配:帶引號和@帶引號。

例如,

String str = "Tutorials Point";

@帶引號的字串文字如下所示:

@"Tutorials Point";

使用者定義的引用型別包括:類、介面或委託。我們將在後面的章節中討論這些型別。

指標型別

指標型別變數儲存另一個型別的記憶體地址。C# 中的指標與 C 或 C++ 中的指標具有相同的功能。

宣告指標型別的語法如下:

type* identifier;

例如,

char* cptr;
int* iptr;

我們將在“不安全程式碼”一章中討論指標型別。

廣告