C#中的類型有兩種:值類型(Value Type)和引用類型(Reference Type)。值類型的變量直接包含它們的數(shù)據(jù),而引用類型的變量存儲對它們的數(shù)據(jù)的引用,后者稱為對象。對于引用類型,兩個變量可能引用同一個對象,因此對一個變量的操作可能影響另一個變量所引用的對象。對于值類型,每個變量都有它們自己數(shù)據(jù)的副本(除ref和out參數(shù)變量外),因此對一個變量的操作不可能影響另一個變量。
成都創(chuàng)新互聯(lián)作為成都網(wǎng)站建設公司,專注成都網(wǎng)站建設、網(wǎng)站設計,有關成都企業(yè)網(wǎng)站建設方案、改版、費用等問題,行業(yè)涉及木屋等多個領域,已為上千家企業(yè)服務,得到了客戶的尊重與認可。C#值類型可分為簡單類型(Simple Type)、枚舉類型(Enum Type)、結(jié)構類型(Struct Type)和可以為null(Nullale Type)的類型。
C#引用類型可分為類類型(Class Type)、接口類型(Interface Type)、數(shù)組類型(Array Type)和委托類型(Delegate Type)。
C#值類型(Value Type):
1. 簡單類型(Simple Type):
有符號整型:sbyte(8 bit), short(16 bit), int(32 bit), long(64 bit)
無符號整型:byte(8 bit), ushort(16 bit), uint(32 bit), ulong(64 bit)
Unicode字符:char,表示一個UTF-16編碼單元。
浮點型:float(32 bit), double(64 bit),它們使用單精度和雙精度的IEEE754格式表示。
高精度小數(shù)型:decimal(128 bit),適合用于財務計算和貨幣計算。
布爾型:bool,用于表示值為true和false的布爾值。
2. 枚舉類型(Enum Type):
enum E { ... }形式的用戶自定義類型
3. 結(jié)構類型(Struct Type):
struct S { ... }形式的用戶自定義類型
4. 可以為null的類型(Nullable Type):
其他所有具有null值的值類型的擴展
C#引用類型(Reference Type):
1. 類類型(Class Type):
所有其他類型的最終基類:object
Unicode字符串:string
class C { ... }形式的用戶自定義類型
2. 接口類型(Interface Type):
interface I { ... }形式的用戶自定義類型
3. 數(shù)組類型(Array Type):
一維數(shù)組和多維數(shù)組,例如int[]和int[,]
4. 委托類型(Delegate Type):
delegate int D( ... )形式的用戶自定義類型
C#值類型中簡單類型的取值范圍:
有符號整型:
sbyte, 8 bit,取值范圍:-128 ~ 127
short, 16 bit, 取值范圍:-32678 ~ 32767
int, 32 bit, 取值范圍:-2147483648 ~ 2147483647
long, 64 bit, 取值范圍:–9223372036854775808 ~ 9223372036854775807
無符號整型:
byte, 8 bit, 取值范圍:0 ~ 255
ushort, 16 bit, 取值范圍:0 ~ 65535
uint, 32 bit, 取值范圍:0 ~ 4294967295
ulong, 64 bit, 取值范圍:0 ~ 18446744073709551615
浮點型:
float, 32 bit, 取值范圍:1.5 * 10^-45 ~ 3.4 * 10 ^ 38,7位精度
double, 64 bit, 取值范圍:1.5 * 10^-324 ~ 1.7 * 10^308,15位精度
高精度小數(shù)型:
decimal, 128 bit, 取值范圍:1.0 * 10^-28 ~ 7.9 * 10^28,28位精度
字符型:
char, 16 bit, 取值范圍:0 ~ 65535
布爾型:
bool, 取值范圍:true/false
C#程序使用類型聲明(Type Declaration)來創(chuàng)建新類型。類型聲明指定***手類型的名稱和成員。在C#類型分類中,有五類是用戶可定義的:類類型、結(jié)構類型、接口類型、枚舉類型和委托類型。
類類型定義一個包含數(shù)據(jù)成員和函數(shù)成員的數(shù)據(jù)結(jié)構。類類型支持單一繼承和多態(tài),派生類可用來擴展和專用化基類的機制。
結(jié)構類型與類類型相似,表示一個帶有數(shù)據(jù)成員和函數(shù)成員的結(jié)構。但是,與類不同,結(jié)構是一種值類型,并且不需要堆分配。結(jié)構類型不支持用戶指定的繼承,并且所有結(jié)構類型都隱式地從類型object繼承。
接口類型定義了一個協(xié)定,作為一個公共函數(shù)成員的命名集。實現(xiàn)某個接口的類或結(jié)構必須提供該接口的函數(shù)成員的實現(xiàn)。一個接口可以從多個基接口繼承,而一個類或結(jié)構可以實現(xiàn)多個接口。
委托類型表示對具有特定參數(shù)列表和返回類型的方法的引用。通過委托,我們能夠?qū)⒎椒ㄗ鳛閷嶓w賦值給變量和作為參數(shù)傳遞。委托類似于在其他某些語言中的函數(shù)指針的概念,但是與函數(shù)指針不同,委托是面向?qū)ο蟮?,并且是類型安全的?/p>
類類型、結(jié)構類型、接口類型和委托類型都支持泛型,困此可以通過其他類型將其參數(shù)化。
枚舉類型是具有命名常量的獨特的類型。每種枚舉類型都具有一個基礎類型,該基礎類型必須是八種整型之一。枚舉類型的值集和它的基礎類型的值集相同。
C#支持由任何類型組成的一維和多維數(shù)組。與以上列出的類型不同,數(shù)組類型不必聲明就可以使用。實際上,數(shù)組類型是通過在某個類型名后加一對方括號來構造的。
可以為null的類型也不必聲明就可以使用。對于每個不可以為ull的值類型T,都有一個相應的可以為null的類型T?,該類型可以容納附加值null。
C#的類型系統(tǒng)是統(tǒng)一的,因此任何類型的值都可以按對象處理。C#中的每個類型直接或間接地從object類類型派生,而object是所有類型的最終基類。引用類型的值都被視為object類型,被簡單地當作對象來處理。值類型的值則通過對其執(zhí)行裝箱和拆箱操作按對象來處理。
當將值類型的值轉(zhuǎn)換為類型object時,將分配一個對象實例(也稱“箱子”)以包含該值,并將值復制到該箱子中。反過來,當將一個object引用強制轉(zhuǎn)換為值類型時,將檢查所引用的對象是否含有正確的值類型,如果有,則將箱子中的值復制出來。
C#的統(tǒng)一類型系統(tǒng)實際上意味著值類型可以“按需”轉(zhuǎn)換為對象。因為統(tǒng)一,所以使用類型object的通用庫可以與引用類型和值類型一同使用。
C#變量包括字段、數(shù)組元素、局部變量和參數(shù)。
變量表示了存儲變量,并且每個變量都有一個類型,以決定什么樣的值能夠存入變量,如下概述:
1. 不可以為null的值類型變量:類型完全相同的值。
2. 可以為null的值類型變量:null值和類型完全相同的值。
3. object變量:null引用、對任何引用類型的對象的引用,或者對任何值類型的裝箱的引用。
4. 類類型變量:null引用、對該類類型的實例的引用,或者對從該類類型派生的類的實例的引用。
5. 接口類型變量:null引用、對實現(xiàn)該接口類型的類類型的實例的引用,或者對實現(xiàn)該接口類型的值類型的裝箱值的引用。
6. 數(shù)組類型變量:null引用、對該數(shù)組類型的實例的引用,或者對兼容數(shù)組類型的實例的引用。
7. 委托類型變量:null引用或?qū)υ撐蓄愋偷膶嵗囊谩?/p>
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務器買多久送多久。
網(wǎng)頁名稱:C#基礎編程----類型和變量-創(chuàng)新互聯(lián)
URL標題:http://jinyejixie.com/article8/egiip.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航、品牌網(wǎng)站制作、網(wǎng)站維護、微信公眾號、標簽優(yōu)化、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容