日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

C#之基本知识和语法3 - 数据类型

發(fā)布時(shí)間:2025/3/13 C# 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#之基本知识和语法3 - 数据类型 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載地址:http://www.jb51.net/article/15507.htm

引用類(lèi)型和值類(lèi)型的區(qū)別


值類(lèi)型引用類(lèi)型
內(nèi)存分配地點(diǎn)分配在棧中分配在堆中
效率效率高,不需要地址轉(zhuǎn)換效率低,需要進(jìn)行地址轉(zhuǎn)換
內(nèi)存回收使用完后,立即回收使用完后,不是立即回收,等待GC回收
賦值操作進(jìn)行復(fù)制,創(chuàng)建一個(gè)同值新對(duì)象只是對(duì)原有對(duì)象的引用
函數(shù)參數(shù)與返回值是對(duì)象的復(fù)制是原有對(duì)象的引用,并不產(chǎn)生新的對(duì)象
類(lèi)型擴(kuò)展不易擴(kuò)展容易擴(kuò)展,方便與類(lèi)型擴(kuò)展

1.值類(lèi)型

值類(lèi)型包括簡(jiǎn)單值類(lèi)型和復(fù)合型類(lèi)型。簡(jiǎn)單值類(lèi)型可以再細(xì)分為整數(shù)類(lèi)型、字符類(lèi)型、實(shí)數(shù)類(lèi)型和布爾類(lèi)型;而復(fù)合類(lèi)型則是簡(jiǎn)單類(lèi)型的復(fù)合,包括結(jié)構(gòu)(struct)類(lèi)型和枚舉(enum)類(lèi)型。 整數(shù)類(lèi)型
數(shù)據(jù)類(lèi)型 說(shuō)明 取值范圍 對(duì)應(yīng)于System程序集中的結(jié)構(gòu)
sbyte 有符號(hào)8位整數(shù) -128-127 SByte
byte 無(wú)符號(hào)8位整數(shù) 0-255 Byte
short 有符號(hào)16位整數(shù) -32768-32767 Int16
ushort 無(wú)符號(hào)16位整數(shù) 0-65535 UInt16
Int 有符號(hào)32位整數(shù) -2147489648-2147483647 Int32
uint 無(wú)符號(hào)32位整數(shù) 0-42994967295 UInt32
long 有符號(hào)64位整數(shù) -263-263 Int64
ulong 無(wú)符號(hào)64位整數(shù) 0-264 UInt64
字符類(lèi)型 C#中采用Unicode字符集來(lái)表示字符類(lèi)型。 實(shí)數(shù)類(lèi)型
數(shù)據(jù)類(lèi)型 說(shuō)明 取值范圍
float 32位單精度實(shí)數(shù) 1.5*10-45-3.4*1038
double 64位雙精度實(shí)數(shù) 5.0*10-324-1.7*10308
demcimal 128位十進(jìn)制實(shí)數(shù) 1.0*10-28-7.9*1028
布爾(bool)類(lèi)型 取值只能是ture或者falsebool類(lèi)型對(duì)應(yīng)于.NET類(lèi)庫(kù)中的System.Boolean結(jié)構(gòu)。它在計(jì)算機(jī)中占4個(gè)字節(jié),即32位存儲(chǔ)空間。 結(jié)構(gòu)類(lèi)型 把一系列相關(guān)的信息組織成為一個(gè)單一實(shí)體的過(guò)程,這就是創(chuàng)建一個(gè)結(jié)構(gòu)的過(guò)程。 struct person { string m_name; //姓名 int m_age; //年齡 string m_sex; //性別 } 枚舉類(lèi)型 主要用于表示一個(gè)邏輯相關(guān)聯(lián)的項(xiàng)和組合。使用關(guān)鍵字enum來(lái)定義。 enum Weekday { SundayMondayTuesdayWednesdayThursdayFridaySaturday } 2.引用類(lèi)型 引用類(lèi)型包括類(lèi)(class)、接口(interface)、委托(delegate)和數(shù)組(array)。 類(lèi)(class 類(lèi)是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對(duì)象集合。創(chuàng)建類(lèi)的實(shí)例必須使用關(guān)鍵字new來(lái)進(jìn)行聲明。 (重點(diǎn))類(lèi)和結(jié)構(gòu)之間的根本區(qū)別在于:結(jié)構(gòu)是值類(lèi)型,而類(lèi)是引用類(lèi)型。對(duì)于值類(lèi)型,每個(gè)變量直接包含自身的所有數(shù)據(jù),每創(chuàng)建一個(gè)變量,就在內(nèi)存中開(kāi)辟一塊區(qū)域;而對(duì)于引用類(lèi)型,每個(gè)變量只存儲(chǔ)對(duì)目標(biāo)存儲(chǔ)數(shù)據(jù)的引用,每創(chuàng)建一個(gè)變量,就增加一個(gè)指向目標(biāo)數(shù)據(jù)的指針。 接口(interface 應(yīng)用程序之間要相互調(diào)用,就必須事先達(dá)成一個(gè)協(xié)議,被調(diào)用的一方在協(xié)議中對(duì)自己所能提供的服務(wù)進(jìn)行描述。在C#中,這個(gè)協(xié)議就是接口。接口定義中對(duì)方法的聲明,既不包括訪(fǎng)問(wèn)限制修飾符,也不包括方法的執(zhí)行代碼。 (注意)如果某個(gè)類(lèi)繼承了一個(gè)接口,那么它就要實(shí)現(xiàn)該接口所定義的服務(wù)。也就是實(shí)現(xiàn)接口中的方法。 委托 委托用語(yǔ)封裝某個(gè)方法的調(diào)用過(guò)程。 委托的使用過(guò)程分為3步: 1.定義 delegate void HelloDelegate(); 2.實(shí)例化 HelloDelegate hd = new HelloDelegate(p1.Say); //p1.Say調(diào)用的方法 3.調(diào)用 hd(); 數(shù)組 數(shù)組主要用于同一數(shù)據(jù)類(lèi)型的數(shù)據(jù)進(jìn)行批量處理。在C#中,數(shù)組需要初始化之后才能使用。 如:int[] array1 = new int[3]{2,3,5}; int[] array1 = {2,3,5}; (注意)對(duì)規(guī)則多維數(shù)組,調(diào)用Length屬性所得的值為整個(gè)數(shù)組的長(zhǎng)度;而調(diào)用其GetLength方法,參數(shù)為0時(shí)得到數(shù)組第1維的長(zhǎng)度,為1時(shí)得到數(shù)組第2維的長(zhǎng)度,以此類(lèi)推。而對(duì)于不規(guī)則多維數(shù)組,調(diào)用Length屬性和以0為參數(shù)調(diào)用其GetLength方法,得到的都是第一維的長(zhǎng)度。 3.類(lèi)型轉(zhuǎn)換 數(shù)值轉(zhuǎn)換 數(shù)值的轉(zhuǎn)換有一個(gè)原則,即從低精度類(lèi)型到高精度類(lèi)型通常可以進(jìn)行隱式轉(zhuǎn)換;而從高精度類(lèi)型則必須進(jìn)行顯式轉(zhuǎn)換。 如:int i = 100; long j = 1000; j = i; //隱式轉(zhuǎn)換,由低精度到高精度的轉(zhuǎn)換 i = (int)j; //顯式轉(zhuǎn)換,有高精度到底精度的轉(zhuǎn)換 具體轉(zhuǎn)換過(guò)程中信息的丟失就看各數(shù)據(jù)類(lèi)型的精度了。(可以參考上面數(shù)據(jù)類(lèi)型) 枚舉轉(zhuǎn)換 枚舉類(lèi)型與其他任何類(lèi)型之間不存在隱式轉(zhuǎn)換。而和枚舉類(lèi)型相關(guān)的顯式轉(zhuǎn)換包括: 1.從所有整數(shù)類(lèi)型(包括字符類(lèi)型)和實(shí)數(shù)類(lèi)型到枚舉類(lèi)型的顯式轉(zhuǎn)換; 2.從枚舉類(lèi)型到所有整數(shù)類(lèi)型(包括字符類(lèi)型)和實(shí)數(shù)類(lèi)型的顯式轉(zhuǎn)換; 3.從枚舉類(lèi)型到枚舉類(lèi)型的顯式轉(zhuǎn)換。 裝箱和拆箱轉(zhuǎn)換 主要是值類(lèi)型與引用類(lèi)型之間相互轉(zhuǎn)換。 如:object obj 1= 10; int i = (int)obj; //拆箱 int j = 100; object obj2 = j; //裝箱 轉(zhuǎn)換檢查 如果出現(xiàn)轉(zhuǎn)換失敗,程序就會(huì)拋出一個(gè)System.InvalidCastException異常

轉(zhuǎn)載于:https://www.cnblogs.com/gaoxu387/archive/2011/05/27/2059459.html

總結(jié)

以上是生活随笔為你收集整理的C#之基本知识和语法3 - 数据类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。