日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
詳細(xì)介紹C#數(shù)據(jù)類型

C#編程中,大家會(huì)經(jīng)常使用到不同的數(shù)據(jù)類型,那么C#編程語言到底有什么類型呢?具體如下:

10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有烏翠免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

1.1 值類型

各種值類型總是含有相應(yīng)該類型的一個(gè)值。C#迫使你初始化變量才能使用它們進(jìn)行計(jì)算-變量沒有初始化不會(huì)出問題,因?yàn)楫?dāng)你企圖使用它們時(shí),編譯器會(huì)告訴你。 每當(dāng)把一個(gè)值賦給一個(gè)值類型時(shí),該值實(shí)際上被拷貝了。相比,對(duì)于引用類型,僅是引用被拷貝了,而實(shí)際的值仍然保留在相同的內(nèi)存位置,但現(xiàn)在有兩個(gè)對(duì)象指向了它(引用它)。C#的值類型可以歸類如下:

  • 簡單類型(Simple types )
  • 結(jié)構(gòu)類型(struct types)
  • 枚舉類型(Enumeration types)

1.1.1 簡單類型

在C#中出現(xiàn)的簡單類型共享一些特性。***,它們都是.NET系統(tǒng)類型的別名。第二,由簡單類型組成的常量表達(dá)式僅在編譯時(shí)而不是運(yùn)行時(shí)受檢測。***,簡單類型可以按字面被初始化。以下為C#簡單類型歸類:

  • 整型
  • 布爾型
  • 字符型 (整型的一種特殊情況)
  • 浮點(diǎn)型
  • 小數(shù)型

1.1.1.1 整型

C#中有9個(gè)整型。 sbyte 、byte、 short、 ushort、 int、 uint、 long、 ulong 和 char(單獨(dú)一節(jié)討論)。它們具有以下特性:

  • sbyte型為有符號(hào)8位整數(shù),取值范圍在128~127之間。
  • bytet型為無符號(hào)16位整數(shù),取值范圍在0~255之間。
  • short型為有符號(hào)16位整數(shù),取值范圍在-32,768~32,767之間。
  • ushort型為無符號(hào)16位整數(shù),取值范圍在0~65,535之間。
  • int型為有符號(hào)32位整數(shù),取值范圍在-2,147,483,648~ 2,147,483,647之間。
  • uint型為無符號(hào)32位整數(shù),取值范圍在 0 ~ 4,294,967,295之間。
  • long型為64位有符號(hào)整數(shù),取值范圍在9,223,372,036,854,775,808~ 9,223,372,036,854,775,807之間。
  • ulong型為64位無符號(hào)整數(shù),取值范圍在0 ~ 18,446,744,073,709,551,615之間。

VB和C程序員都可能會(huì)對(duì)int和long數(shù)據(jù)類型所代表的新范圍感到驚訝。和其它的編程語言相比,在C#中,int不再取決于一個(gè)機(jī)器的字(word)的大小,而long被設(shè)成64位。

1.1.1.2 布爾型

布爾數(shù)據(jù)類型有true和false兩個(gè)布爾值??梢再x于true或false值給一個(gè)布爾變量,或可以賦于一個(gè)表達(dá)式,其所求出的值等于兩者之一:

 
 
 
  1. bool bTest = (80 > 90); 

與C和C++相比,在C#中,true值不再為任何非零值。不要為了增加方便而把其它整型轉(zhuǎn)換成布爾型。

1.1.1.3 字符型

字符型為一個(gè)單Unicode 字符。一個(gè)Unicode字符16位長,它可以用來表示世界上多種語言??梢园匆韵路椒ńo一個(gè)字符變量賦值:

 
 
 
  1. char chSomeChar = 'A'; 

除此之外,可以通過十六進(jìn)制轉(zhuǎn)義符(前綴\x)或Unicode表示法給變量賦值(前綴\u):

 
 
 
  1. char chSomeChar = '\x0065'; 
  2. char chSomeChar = '\u0065'; 

不存在把char轉(zhuǎn)換成其它數(shù)據(jù)類型的隱式轉(zhuǎn)換。這就意味著,在C#中把一個(gè)字符變量當(dāng)作另外的整數(shù)數(shù)據(jù)類型看待是行不通的——這是C程序員必須改變習(xí)慣的另一個(gè)方面。但是,可以運(yùn)用顯式轉(zhuǎn)換:

 
 
 
  1. char chSomeChar = (char)65; 
  2. int nSomeInt = (int)'A'; 

在C中仍然存在著轉(zhuǎn)義符(字符含義)。要換換腦筋,請(qǐng)看表4.1。

Table 4.1 轉(zhuǎn)義符( Escape Sequences)

轉(zhuǎn)義符 字符名

\' 單引號(hào)

\" 雙引號(hào)

\\ 反斜杠

\0 空字符

\a 感嘆號(hào)(Alert )

\b 退格

\f 換頁

\n 新行

\r 回車

\t 水平 tab

\v 垂直tab

1.1.1.4 浮點(diǎn)型

兩種數(shù)據(jù)類型被當(dāng)作浮點(diǎn)型:float和double。它們的差別在于取值范圍和精度:

float: 取值范圍在 1.5x10^-45~ 3.4x10^38之間, 精度為7位數(shù)。

double: 取值范圍在 5.0x10^-324 ~ 1.7x10^308之間, 精度為 15~16 位數(shù)。

當(dāng)用兩種浮點(diǎn)型執(zhí)行運(yùn)算時(shí),可以產(chǎn)生以下的值:

  • 正零和負(fù)零
  • 正無窮和負(fù)無窮
  • 非數(shù)字值(Not-a-Number,縮寫NaN)
  • 非零值的有限數(shù)集

另一個(gè)運(yùn)算規(guī)則為,當(dāng)表達(dá)式中的一個(gè)值是浮點(diǎn)型時(shí),所有其它的類型都要被轉(zhuǎn)換成浮點(diǎn)型才能執(zhí)行運(yùn)算。

1.1.1.5 小數(shù)型(The decimal Type)

小數(shù)型是一種高精度、128位數(shù)據(jù)類型,它打算用于金融和貨幣的計(jì)算。它所表示的范圍從大約1.0x10^-28 到 7.9x10^28,具有28至29位有效數(shù)字。要注意,精度是以位數(shù) (digits)而不是以小數(shù)位(decimal places)表示。運(yùn)算準(zhǔn)確到28個(gè)小數(shù)位的***值。

正如你所看到的,它的取值范圍比double的還窄,但它更精確。因此,沒有decimal和double之間的隱式轉(zhuǎn)換——往一個(gè)方向轉(zhuǎn)換可能會(huì)溢出,往另外一個(gè)方向可能會(huì)丟失精度。你不得不運(yùn)用顯式轉(zhuǎn)換。

當(dāng)定義一個(gè)變量并賦值給它時(shí),使用 m 后綴以表明它是一個(gè)小數(shù)型:

 
 
 
  1. decimal decMyValue = 1.0m; 

如果省略了m,在變量被賦值之前,它將被編譯器認(rèn)作double型。

1.1.2 結(jié)構(gòu)類型

一個(gè)結(jié)構(gòu)類型可以聲明構(gòu)造函數(shù)、常數(shù)、字段、方法、屬性、索引、操作符和嵌套類型。盡管列出來的功能看起來象一個(gè)成熟的類,但在C#中,結(jié)構(gòu)和類的區(qū)別在于結(jié)構(gòu)是一個(gè)值類型,而類是一個(gè)引用類型。與C++相比,這里可以用結(jié)構(gòu)關(guān)鍵字定義一個(gè)類。

使用結(jié)構(gòu)的主要思想是用于創(chuàng)建小型的對(duì)象,如Point和FileInfo等等。你可以節(jié)省內(nèi)存,因?yàn)闆]有如類對(duì)象所需的那樣有額外的引用產(chǎn)生。例如,當(dāng)聲明含有成千上萬個(gè)對(duì)象的數(shù)組時(shí),這會(huì)引起極大的差異。

清單4.1 包含一個(gè)命名為IP的簡單結(jié)構(gòu),它表示一個(gè)使用byte類型的4個(gè)字段的IP地址。我不包括方法等,因?yàn)檫@些工作正如使用類一樣,將在下一章有詳細(xì)的描述。

清單1.1 定義一個(gè)簡單的結(jié)構(gòu)

 
 
 
  1. using System; 
  2. struct IP 
  3. public byte b1,b2,b3,b4; 
  4. class Test 
  5. public static void Main() 
  6. IP myIP; 
  7. myIP.b1 = 192; 
  8. myIP.b2 = 168; 
  9. myIP.b3 = 1; 
  10. myIP.b4 = 101; 
  11. Console.Write("{0}.{1}.",myIP.b1,myIP.b2); 
  12. Console.Write("{0}.{1}",myIP.b3,myIP.b4); 

1.1.3 枚舉類型

當(dāng)你想聲明一個(gè)由一指定常量集合組成的獨(dú)特類型時(shí),枚舉類型正是你要尋覓的。最簡單的形式,它看起來可能象這樣:

 
 
 
  1. enum MonthNames { January, February, March, April }; 

因我慣用缺省設(shè)置,故枚舉元素是int型,且***個(gè)元素為0值。每一個(gè)連續(xù)的元素按1遞增。如果你想給***個(gè)元素直接賦值,可以如下把它設(shè)成1:

 
 
 
  1. enum MonthNames { January=1, February, March, April }; 

如果你想賦任意值給每個(gè)元素——甚至相同的值——這也沒有問題:

 
 
 
  1. enum MonthNames { January=31, February=28, March=31, April=30 }; 

***的選擇是不同于int的數(shù)據(jù)類型??梢栽谝粭l語句中按如此賦值:

 
 
 
  1. enum MonthNames : byte { January=31, February=28, March=31, April=30 }; 

你可以使用的類型僅限于long、int、short和byte。

1.2 引用類型

和值類型相比,引用類型不存儲(chǔ)它們所代表的實(shí)際數(shù)據(jù),但它們存儲(chǔ)實(shí)際數(shù)據(jù)的引用。在C#中提供以下引用類型給你使用:

  • 對(duì)象類型
  • 類類 型
  • 接口
  • 代表元
  • 字符串類型
  • 數(shù)組

1.2.1 對(duì)象類型

對(duì)象類型是所有類型之母——它是其它類型最根本的基類。因?yàn)樗撬袑?duì)象的基類,所以可把任何類型的值賦給它。例如,一個(gè)整型:

 
 
 
  1. object theObj = 123; 

給所有的C++程序員一個(gè)警告:object并不等價(jià)于你可能正在尋找的void*。無論如何,忘掉指針總是個(gè)好主意。

當(dāng)一個(gè)值類型被加框(作為一個(gè)對(duì)象利用)時(shí),對(duì)象類型就被使用了。這一章稍后會(huì)討論到加框和消框

1.2.2 類類型

一個(gè)類類型可以包含數(shù)據(jù)成員、函數(shù)成員和嵌套類型。數(shù)據(jù)成員是常量、字段和事件。函數(shù)成員包括方法、屬性、索引、操作符、構(gòu)造函數(shù)和析構(gòu)函數(shù)。類和結(jié)構(gòu)的功能是非常相似的,但正如前面所述,結(jié)構(gòu)是值類型而類是引用類型。

希望對(duì)你有幫助。


文章題目:詳細(xì)介紹C#數(shù)據(jù)類型
鏈接地址:http://www.5511xx.com/article/coipioc.html