在 c# 中,變數分為以下幾種型別:
值型別變數可以直接分配給乙個值。它們是從類system.valuetype中派生的。
值型別直接包含資料。比如int、char、float,它們分別儲存數字、字元、浮點數。當您宣告乙個int型別時,系統分配記憶體來儲存值。
下表列出了 c# 2010 中可用的值型別:
型別描述
範圍預設值
bool
布林值true 或 false
false
byte
8 位無符號整數
0 到 255
0char
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
int32 位有符號整數型別
-2,147,483,648 到 2,147,483,647
0long
64 位有符號整數型別
-923,372,036,854,775,808 到 9,223,372,036,854,775,807
0lsbyte
8 位有符號整數型別
-128 到 127
0short
16 位有符號整數型別
-32,768 到 32,767
0uint
32 位無符號整數型別
0 到 4,294,967,295
0ulong
64 位無符號整數型別
0 到 18,446,744,073,709,551,615
0ushort
16 位無符號整數型別
0 到 65,535
0如需得到乙個型別或乙個變數在特定平台上的準確尺寸,可以使用sizeof方法。表示式 sizeof(type) 產生以位元組為單位儲存物件或型別的儲存尺寸。下面舉例獲取任何機器上 int 型別的儲存尺寸:
", sizeof(int));
console.readline();
}}}
當上面的**被編譯和執行時,它會產生下列結果:
size of int: 4
引用型別不包含儲存在變數中的實際資料,但它們包含對變數的引用。
換句話說,它們指的是乙個記憶體位置。使用多個變數時,引用型別可以指向乙個記憶體位置。如果記憶體位置的資料是由乙個變數改變的,其他變數會自動反映這種值的變化。內建的引用型別有:object、dynamic和string。
物件(object)型別是 c# 通用型別系統(common type system - cts)中所有資料型別的終極基類。object 是 system.object 類的別名。所以物件(object)型別可以被分配任何其他型別(值型別、引用型別、預定義型別或使用者自定義型別)的值。但是,在分配值之前,需要先進行型別轉換。
當乙個值型別轉換為物件型別時,則被稱為裝箱;另一方面,當乙個物件型別轉換為值型別時,則被稱為拆箱。
object obj;
obj = 100; // 這是裝箱
您可以儲存任何型別的值在動態資料型別變數中。這些變數的型別檢查是在執行時發生的。
宣告動態型別的語法:
dynamic = value;
例如:
dynamic d = 20;
動態型別與物件型別相似,但是物件型別變數的型別檢查是在編譯時發生的,而動態型別變數的型別檢查是在執行時發生的。
字串(string)型別允許您給變數分配任何字串值。字串(string)型別是 system.string 類的別名。它是從物件(object)型別派生的。字串(string)型別的值可以通過兩種形式進行分配:引號和 @引號。
例如:
string str = "runoob.com";
乙個 @引號字串:
@"runoob.com";
c# string 字串的前面可以加 @(稱作"逐字字串")將轉義字元(\)當作普通字元對待,比如:
string str = @"c:\windows";
等價於:
string str = "c:\\windows";
@ 字串中可以任意換行,換行符及縮排空格都計算在字串長度之內。
string str = @"";
使用者自定義引用型別有:class、inte***ce 或 delegate。我們將在以後的章節中討論這些型別。
指標型別變數儲存另一種型別的記憶體位址。c# 中的指標與 c 或 c++ 中的指標有相同的功能。
宣告指標型別的語法:
type* identifier;
例如:
char* cptr;
int* iptr;
C 資料型別
一般來說,計算機要儲存和處理不同的資料型別,在c 中有基本的資料型別和使用者自定義資料型別以及引用型資料。我們先學習下基本的資料型別,也就是系統自帶的資料型別。每種資料型別都要佔據系統記憶體的一定空間,例如c 中的整數int 乙個整數佔4個位元組,也就是32位 計算機是用0和1二進位制來表示和處理資...
c 資料型別
型別可分為 值型別,引用型別 值型別 直接存放真正的資料,值型別都有固定的長度,值型別的變數都儲存在 堆疊 stack 上。作為值型別的變數,每個都有自己的資料,因此對乙個變數的操作不會影響其他變數。引用型別 儲存讀資料的記憶體位址的引用,位於受管制的堆 heap 上作為引用型別的變數可以引 用同一...
C 資料型別
bool system.boolean 1位元組 byte system.byte 1位元組無符號 sbyte system.sbyte 1位元組有符號 short system.int16 2位元組 ushort system.uint16 2位元組 int system.int32 4位元組 u...