數(shù)據(jù)類(lèi)型指定變量可以存儲(chǔ)的數(shù)據(jù)的類(lèi)型,如:整數(shù),浮點(diǎn),字符等。
C# 語(yǔ)言中有3
種類(lèi)型的數(shù)據(jù)類(lèi)型。如下表中所示 -
類(lèi)型 | 數(shù)據(jù)類(lèi)型 |
---|---|
值數(shù)據(jù)類(lèi)型 | int , char , float , Boolean 等 |
引用數(shù)據(jù)類(lèi)型 | 字符串,類(lèi),對(duì)象和接口 |
指針數(shù)據(jù)類(lèi)型 | 指針 |
值數(shù)據(jù)類(lèi)型是基于整數(shù)和基于浮點(diǎn)數(shù)。 C# 語(yǔ)言支持有符號(hào)和無(wú)符號(hào)文字值。
C# 語(yǔ)言中有兩種類(lèi)型的值數(shù)據(jù)類(lèi)型。
數(shù)據(jù)類(lèi)型的內(nèi)存大小可能會(huì)根據(jù)32
位或64
位操作系統(tǒng)而不同。我們來(lái)看看值數(shù)據(jù)類(lèi)型。它的大小根據(jù)32
位操作系統(tǒng)給出。
數(shù)據(jù)類(lèi)型 | 內(nèi)存大小 | 范圍 |
---|---|---|
char | 1 byte | -128 to 127 |
signed char | 1 byte | -128 to 127 |
unsigned char | 1 byte | 0 to 127 |
short | 2 byte | -32,768 to 32,767 |
signed short | 2 byte | -32,768 to 32,767 |
unsigned short | 2 byte | 0 to 32,767 |
int | 2 byte | -32,768 to 32,767 |
signed int | 2 byte | -32,768 to 32,767 |
unsigned int | 2 byte | 0 to 32,767 |
short int | 2 byte | -32,768 to 32,767 |
signed short int | 2 byte | -32,768 to 32,767 |
unsigned short int | 2 byte | 0 to 32,767 |
long int | 4 byte | |
signed long int | 4 byte | |
unsigned long int | 4 byte | |
float | 4 byte | |
double | 8 byte | |
long double | 10 byte | - |
要在特定平臺(tái)上獲取類(lèi)型或變量的確切大小,可以使用sizeof
方法。 表達(dá)式sizeof(type)
產(chǎn)生對(duì)象或類(lèi)型的存儲(chǔ)大小(以字節(jié)為單位)。以下是在任何機(jī)器上獲取double
類(lèi)型的大小的示例:
using System;
namespace DataTypeApplication
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Size of double: {0}", sizeof(double));
Console.ReadLine();
}
}
}
當(dāng)編譯和執(zhí)行上述代碼時(shí),會(huì)產(chǎn)生以下結(jié)果:
Size of double: 8
引用數(shù)據(jù)類(lèi)型不包含存儲(chǔ)在變量中的實(shí)際數(shù)據(jù),但它們包含對(duì)變量的引用。如果一個(gè)變量的數(shù)據(jù)值被更改,則這個(gè)變量將自動(dòng)反映該值的變化。
C# 語(yǔ)言中有兩種類(lèi)型的引用數(shù)據(jù)類(lèi)型。
內(nèi)置引用類(lèi)型的示例有:object
,dynamic
和string
。
對(duì)象類(lèi)型
對(duì)象類(lèi)型是 C# 通用類(lèi)型系統(tǒng)(CTS)中所有數(shù)據(jù)類(lèi)型的最終基類(lèi)。
當(dāng)一個(gè)值類(lèi)型轉(zhuǎn)換為對(duì)象類(lèi)型時(shí),它被稱(chēng)為裝箱,另一方面,當(dāng)對(duì)象類(lèi)型轉(zhuǎn)換為值類(lèi)型時(shí),稱(chēng)為拆箱。
object obj;
obj = 100; // this is boxing
動(dòng)態(tài)類(lèi)型
可以在動(dòng)態(tài)數(shù)據(jù)類(lèi)型變量中存儲(chǔ)任何類(lèi)型的值。這些類(lèi)型的變量的類(lèi)型檢查在運(yùn)行時(shí)進(jìn)行。
聲明動(dòng)態(tài)類(lèi)型的語(yǔ)法是:
dynamic <variable_name> = value;
例如,
dynamic d = 20;
字符串類(lèi)型
字符串類(lèi)型允許為變量分配任何字符串值。String
類(lèi)型是System.String
類(lèi)的別名。 它是從Object
類(lèi)型派生的??梢允褂脙煞N形式的字符串文字來(lái)分配字符串類(lèi)型的值:quoted
和@quoted
。
示例
String str = "Yiibai Point";
@quoted
字符串文字如下所示:
String str = "Yiibai Point";
C# 語(yǔ)言中的指針是變量,也稱(chēng)為定位符或指示符,指向值的地址。
指針中使用的符號(hào)
符號(hào) | 名稱(chēng) | 說(shuō)明 |
---|---|---|
& |
地址運(yùn)算符 | 獲取變量的地址 |
* |
間接運(yùn)算符 | 訪(fǎng)問(wèn)地址的值 |
聲明一個(gè)指針
C# 語(yǔ)言中的指針可以使用*
(星號(hào)符號(hào))聲明。
int * a; //pointer to int
char * c; //pointer to char