自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

編程入門:C#類型和C#變量

開發(fā) 后端
本文分別介紹了C#的編程入門知識(shí),即C#類型和C#變量,帶領(lǐng)大家走進(jìn)C#語言的大門。

C#類型有兩種:值類型(value type)和引用類型(reference type)。值類型變量直接包括它們的數(shù)據(jù),而引用類型變量存儲(chǔ)的是它們的數(shù)據(jù)引用,后者被認(rèn)為是對(duì)象。對(duì)于引用類型,有可能兩個(gè)變量引用相同的對(duì)象,因此對(duì)其中一個(gè)變量的操作可能影響另一個(gè)對(duì)象引用的對(duì)象。對(duì)于值類型,每個(gè)變量都有自己的數(shù)據(jù)拷貝,因此對(duì)一個(gè)變量的操作不可能影響其他變量(ref和out參數(shù)變量例外)。

C#的值類型進(jìn)一步劃分為簡(jiǎn)單類型(simple type)、枚舉類型(enum type)和結(jié)構(gòu)類型(struct type);C#的引用類型進(jìn)一步劃分為類類型(class type)、接口類型(interface type)、數(shù)組類型(array type)和委托類型(delegate type)。

表1.1為整個(gè)C#類型系統(tǒng)的概述。

表1.1  C#類型系統(tǒng)的概述

表1.1  C#類型系統(tǒng)的概述 

8個(gè)整型類型分別支持8位、16位、32位和64位整數(shù)的有符號(hào)或者無符號(hào)格式。

兩個(gè)浮點(diǎn)類型,float和double,分別用32位單精度和64位雙精度的IEEE754格式表示。

decimal是128位的數(shù)據(jù)類型,適合財(cái)金和貨幣方面的計(jì)算。

C#的bool類型用于表示布爾值——true或者false。

在C#中,字符和字符串的處理使用Unicode編碼。char類型表示16位的Unicode編碼單元,string類型表示16位的Unicode編碼單元的序列。

表1.2總結(jié)了C#的數(shù)值類型。

表1.2  C#的數(shù)值類型

表1.2  C#的數(shù)值類型 

C#程序使用類型聲明創(chuàng)建新類型。類型聲明指定新類型的名字和成員。有5種C#類型可由用戶自定義:類類型、結(jié)構(gòu)類型、接口類型、枚舉類型和委托類型。

類類型定義了一個(gè)數(shù)據(jù)結(jié)構(gòu),它包括數(shù)據(jù)成員(字段)和函數(shù)成員(方法、屬性及其他)。類類型支持繼承和多態(tài),即派生類能夠擴(kuò)展和特殊化基類的機(jī)制。

結(jié)構(gòu)類型與類類型相似,表示帶有數(shù)據(jù)成員和函數(shù)成員的結(jié)構(gòu)。然而,與類類型不同的是,結(jié)構(gòu)是值類型,不需要堆分配。結(jié)構(gòu)不支持用戶指定的繼承,所有的結(jié)構(gòu)類型隱式地繼承類型object。

接口類型定義了一個(gè)約定,作為一組函數(shù)成員命名的集合。實(shí)現(xiàn)接口的類或結(jié)構(gòu)必須提供接口函數(shù)成員的實(shí)現(xiàn)。接口可能從多個(gè)基接口繼承而來,類或結(jié)構(gòu)也可能實(shí)現(xiàn)多個(gè)接口。

枚舉類型是帶有命名常量的獨(dú)特類型。每個(gè)枚舉類型有一個(gè)底層的類型,它必須是8個(gè)整型類型之一。枚舉類型的值集與底層類型的值集相同。

委托類型通過特定的參數(shù)列表和返回類型表示對(duì)方法的引用。委托將方法處理為實(shí)體,實(shí)體能夠賦值給變量,并且當(dāng)做參數(shù)傳遞。委托類似于某些程序語言中的方法指針,不同之處在于,委托是面向?qū)ο蟮?,并且是類型安全的?/P>

C#支持任何類型的一維和多維數(shù)組。不同于其他類型,數(shù)組類型在它們被使用前不必聲明。事實(shí)上,數(shù)組類型的構(gòu)造是由某個(gè)類型名加上方括號(hào)。例如,int[]是int的一維數(shù)組,int[,]是int的二維數(shù)組,而int[][]是int的一維數(shù)組的一維數(shù)組。

C#類型系統(tǒng)是統(tǒng)一的,這樣任何類型的值都能夠被處理成對(duì)象。C#中每一個(gè)類型直接或者間接從object類繼承而來,并且object是所有類型最終的基類。值類型的值可以通過執(zhí)行裝箱(boxing)和取消裝箱(unboxing)的操作處理為對(duì)象。在下面的示例中,int被轉(zhuǎn)換為object,然后又轉(zhuǎn)回到int。

  1. using System;  
  2.  
  3. class Test  
  4. {  
  5.     static void Main(){  
  6.        int i=123;  
  7.        object o=i;     //裝箱  
  8.        int j=(int)o;    //取消裝箱  
  9.     }  
  10. }  

當(dāng)值類型的值被強(qiáng)制類型轉(zhuǎn)換為object時(shí),就會(huì)分配持有該值的對(duì)象實(shí)例(也稱為“箱子”),并且值也被拷貝到那個(gè)箱子里。相反地,當(dāng)object引用被強(qiáng)制類型轉(zhuǎn)換為值類型時(shí),要檢查這個(gè)引用類型是否是當(dāng)前值類型的箱子,如果是的話,箱子中的值就會(huì)被拷貝出來。

C#統(tǒng)一的類型系統(tǒng)意味著值類型能夠“按需”轉(zhuǎn)換為對(duì)象。由于這種統(tǒng)一性,使用object類型的通用類庫,例如.NET框架中的集合類,能夠通過引用類型和值類型使用。

存在幾種C#變量,包括字段、數(shù)組元素、局部變量和參數(shù)。變量表示了存儲(chǔ)的位置,并且每一個(gè)變量都有一個(gè)類型,以決定什么樣的值能夠存入變量中,如表1.3所示。

表1.3  C#變量

表1.3  C#的變量 

C#類型和C#變量的知識(shí)就介紹到這里,希望對(duì)大家有用。

【編輯推薦】

  1. 總結(jié)C#語言命名規(guī)范
  2. C#反射相關(guān)知識(shí)學(xué)習(xí)
  3. 大話F#和C#:是否會(huì)重蹈C#失敗的覆轍?
  4. 總結(jié)和學(xué)習(xí)C#接口
  5. 學(xué)習(xí)C#程序有感
責(zé)任編輯:book05 來源: 新浪博客
相關(guān)推薦

2009-09-02 17:10:45

C#語言入門

2009-08-25 17:59:49

C#入門

2009-08-12 17:03:22

C#變量類型轉(zhuǎn)換

2009-08-31 14:34:46

C#值類型C#結(jié)構(gòu)類型

2009-08-24 09:55:26

C#接口轉(zhuǎn)換

2009-08-24 11:02:52

C#接口映射

2009-08-10 17:25:58

C#匿名類型

2009-08-13 17:04:09

C#語言C#程序

2009-08-27 16:11:03

C# delegateC# event

2021-03-15 08:18:23

C#反射模塊

2009-08-19 16:39:44

C#值類型C#引用類型

2009-08-26 14:05:19

C#值類型和引用類型

2009-08-19 16:50:32

Visual C#C#語言特性

2009-02-03 09:33:26

動(dòng)態(tài)類型動(dòng)態(tài)編程C# 4.0

2009-08-21 17:19:36

C#網(wǎng)絡(luò)編程入門

2009-08-24 14:20:13

C# 強(qiáng)制類型轉(zhuǎn)換

2009-08-26 15:46:01

C#匿名類型

2009-08-06 15:30:23

C#類型系統(tǒng)

2009-08-14 17:09:48

C#引用類型

2009-08-27 10:08:36

C#隱含類型局部變量
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)