版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、面向?qū)ο缶幊獭獜?fù)合數(shù)據(jù)類型,,在本章,你將學(xué)到:描述內(nèi)存分配 使用結(jié)構(gòu)使用枚舉實(shí)施數(shù)組使用集合,目標(biāo),分配給變量的內(nèi)存有兩種:值類型:所有內(nèi)置數(shù)據(jù)類型,諸如int, char和 float 都是值類型。引用類型: 包括引用內(nèi)存塊的地址。數(shù)據(jù)類型(如string和class)是引用類型。讓我們了解內(nèi)存分配概念的詳情。,描述內(nèi)存分配,描述內(nèi)存分配(續(xù)),,int Num1;Num1=50;,int Num2;
2、Num2=Num1;,值類型:,描述內(nèi)存分配(續(xù)),值類型(續(xù)):,Num1=60;,,Car Suzuki= new Car();Suzuki.Model=10;,創(chuàng)建類Car的對(duì)象,類 Car的成員變量,初始化,用Suzuki初始化Mercedes,類Car的對(duì)象,Car Mercedes;Mercedes=Suzuki;,,,,描述內(nèi)存分配(續(xù)),引用類型:,Suzuki,Mercedes,***,***,10,引用存儲(chǔ)數(shù)
3、據(jù)的內(nèi)存位置,引用存儲(chǔ)數(shù)據(jù)的內(nèi)存位置,,,,,,,描述內(nèi)存分配(續(xù)),引用類型(續(xù)):,結(jié)構(gòu)是值類型的數(shù)據(jù)類型。當(dāng)您希望由一個(gè)變量來(lái)保持各種數(shù)據(jù)類型的相關(guān)數(shù)據(jù)時(shí),您可以創(chuàng)建一個(gè)結(jié)構(gòu)。創(chuàng)建結(jié)構(gòu)要使用struct 關(guān)鍵字。,使用結(jié)構(gòu),struct Bill_Details{public string inv_No; // 發(fā)票號(hào)string ord_Dt;// 定單日期string custName; // 客戶姓名
4、 public string product; // 產(chǎn)品名public double cost; // 產(chǎn)品費(fèi)用public double due_Amt; // 應(yīng)付款總計(jì) },使用結(jié)構(gòu)(續(xù)),結(jié)構(gòu)可以在某個(gè)類內(nèi)聲明,也可以在類之外聲明。當(dāng)結(jié)構(gòu)作為函數(shù)參數(shù)時(shí),傳遞的是結(jié)構(gòu)的副本,而當(dāng)類作為函數(shù)參數(shù)時(shí),傳遞的是引用。,程序示例2-2,枚舉是值類型的數(shù)據(jù)類型。枚舉包含其自己的值并且不能繼承或者傳遞繼承。枚舉器
5、使您能夠?qū)⒎?hào)名稱賦予完整的常量。要進(jìn)行枚舉,可以使用enum 關(guān)鍵字。,使用枚舉,枚舉型 enum,實(shí)質(zhì)就是使用符號(hào)來(lái)表示的一組相互關(guān)聯(lián)的數(shù)據(jù) 注意事項(xiàng): ① 枚舉元素的數(shù)據(jù)值是確定的,一旦聲明就不能在程序的運(yùn)行過(guò)程中更改; ② 枚舉元素的個(gè)數(shù)是有限的,同樣一旦聲明就不能在程序的運(yùn)行過(guò)程中增減; ③ 默認(rèn)情況下,枚舉元素的值是一個(gè)整數(shù),第一個(gè)枚舉數(shù)的值為 0,后面每個(gè)枚舉數(shù)的值依次遞增 1; ④ 如果需要改
6、變默認(rèn)的規(guī)則,則重寫(xiě)枚舉元素的值即可,例如:enum MyEnum{a=101,b,c,d=201,e,f};,創(chuàng)建并使用枚舉類型,思考題:我們經(jīng)常需要從多個(gè)相關(guān)的值中進(jìn)行選取,如一種天氣:晴、陰、雨、雪、霧一周的某一天:Monday, Tuesday, … Sunday一年的某個(gè)月:Jan, Feb, Mar ….. Dec一種對(duì)齊方式:左對(duì)齊、右對(duì)齊、居中對(duì)齊、兩端對(duì)齊,?,創(chuàng)建并使用枚舉類型,枚舉類型是一組被命名的數(shù)字常
7、量,即:一個(gè)枚舉類型中包含了多個(gè)相關(guān)的數(shù)字常量,且每個(gè)常量都被賦予了一個(gè)容易記憶的“名字”使用enum關(guān)鍵字創(chuàng)建枚舉類型,enum Weather {Sunny, //默認(rèn)值0Cloudy, //默認(rèn)值1Rain, //默認(rèn)值2Snow, //默認(rèn)值3fog //默認(rèn)值4},創(chuàng)建并使用枚舉類型,引用枚舉成員,Weather bj ;bj = Weather.Sunny;
8、//顯示結(jié)果Console.WriteLine(bj); // 顯示Sunny,而不是數(shù)字0,創(chuàng)建并使用枚舉類型,給枚舉成員明確賦值,enum Month {Jan = 1,Feb = 2,Mar = 3,……Dec = 12 },應(yīng)用案例:實(shí)例2-1,實(shí)施數(shù)組,數(shù)組是相同數(shù)據(jù)類型值的集合。下圖顯示系統(tǒng)內(nèi)存中的數(shù)組結(jié)構(gòu)。,聲明數(shù)組,在程序中使用數(shù)組之前需要先聲明數(shù)組??梢允褂靡韵抡Z(yǔ)句聲明數(shù)組:d
9、atatype[] Arrayname;讓我們通過(guò)一個(gè)示例來(lái)了解數(shù)組聲明的各種元素的解釋。,聲明數(shù)組(續(xù)),int[ ] Score;,Datatype用于指定元素的數(shù)據(jù)類型,聲明數(shù)組(續(xù)),int[ ] Score;,[ ]用于指定數(shù)組的排列,聲明數(shù)組(續(xù)),int[ ] Score;,Arrayname用于指定數(shù)組名,將對(duì)該數(shù)組的元素進(jìn)行初始化和操作,在C#中,你可以初始化數(shù)組變量,將值賦給數(shù)組元素。另外,你可以復(fù)制數(shù)組
10、變量到另外的變量。初始化期間,你需要使用new 關(guān)鍵字來(lái)創(chuàng)建數(shù)組的實(shí)例。另外,在初始化時(shí)指定數(shù)組的大小。以下語(yǔ)句是數(shù)組初始化的示例:int[] Score; // 數(shù)組聲明Score = new int[10]; //數(shù)組實(shí)例Score = new int[n];,初始化和賦值數(shù)組,使用索引號(hào),可以將值賦給數(shù)組的元素,索引號(hào)也稱為元素的數(shù)組下標(biāo)。下面是賦值給數(shù)組的示例:int[] Score = new int[3];
11、Score[0]=10; 或int[] Score={5,10,15};賦值數(shù)組變量時(shí),源和目標(biāo)變量都引用內(nèi)存中相同的數(shù)組實(shí)例。下面是復(fù)制數(shù)組變量的示例:int[] Source = new int[10] {0, 1, 2, 3, 4};int[] Target= Source;,初始化和賦值數(shù)組(續(xù)),初始化數(shù)組時(shí),可以訪問(wèn)元素值并操作它們。foreach 循環(huán)是專門(mén)用于操作數(shù)組的。以
12、下是 foreach 語(yǔ)句的語(yǔ)法:foreach (type identifier in expression){//statements},操作數(shù)組元素,以下是 foreach 語(yǔ)句的語(yǔ)法:int[] Numbers = { 4, 3, 2, 1, 0, -1, -2, 9, 5 };Console.WriteLine("The Contents of an Array is:");foreach
13、(int K in Numbers){Console.WriteLine("{0} \t",K);},操作數(shù)組元素(續(xù)),聲明方法時(shí),如果您不能確定作為參數(shù)傳遞的變量數(shù),則可以使用param 數(shù)組。以下代碼是在方法參數(shù)列表中使用param 數(shù)組的示例:public int Adding_ArrayElement(params int[] List){int Total = 0;foreach (
14、 int I in List ){ Total += I;}return Total;},操作數(shù)組元素(續(xù)),演示:使用數(shù)組的Matrix Subtraction,問(wèn)題描述:David 是加利福尼亞大學(xué)的學(xué)生,他最近在從事 B.Sc(IT) 工作。他正在進(jìn)行一個(gè)Matrix Subtraction項(xiàng)目。需要為該項(xiàng)目執(zhí)行以下任務(wù) :接受兩個(gè)數(shù)組的數(shù)據(jù)。執(zhí)行減法操作。驗(yàn)證減法的值。請(qǐng)幫助 David
15、使用 Visual Studio IDE創(chuàng)建 C# 程序。,解決方案:要解決上述問(wèn)題,David 需要執(zhí)行以下任務(wù):為Matrix Subtraction創(chuàng)建基于 console 的應(yīng)用程序。構(gòu)建并執(zhí)行應(yīng)用程序。,演示:使用數(shù)組的Matrix Subtraction(續(xù)),多維數(shù)組,數(shù)組的行列值就是數(shù)組的維度。數(shù)組可以是一維或多維的。在單維度數(shù)組中,值存儲(chǔ)在行中。多維度數(shù)組使用不同的維度存儲(chǔ)數(shù)據(jù)。下圖是單維度數(shù)組和多維度數(shù)
16、組的圖形表示。,交叉數(shù)組,交叉數(shù)組=數(shù)組的數(shù)組交錯(cuò)數(shù)組元素的維度和大小可以不同 int[][] jaggedArray = new int[3][];jaggedArray[0] = new int[5];jaggedArray[1] = new int[4];jaggedArray[2] = new int[2];,class ArrayTest{ static void Main() {
17、int[][] arr = new int[2][]; arr[0] = new int[5] { 1, 3, 5, 7, 9 }; arr[1] = new int[4] { 2, 4, 6, 8 }; for (int i = 0; i < arr.Length; i++) { System.Console.Write("Elemen
18、t({0}): ", i); for (int j = 0; j < arr[i].Length; j++) { System.Console.Write("{0}{1}", arr[i][j], j == (arr[i].Length - 1) ? "" : " ");
19、 } System.Console.WriteLine(); } System.Console.WriteLine("Press any key to exit."); System.Console.ReadKey(); }},多維數(shù)組(續(xù)),在C#中,Array類是所有數(shù)組的基類。Array 類提
20、供能夠使用數(shù)組的屬性和方法。屬性:下表介紹一些最常用的Array 類的屬性,多維數(shù)組(續(xù)),方法:下表介紹一些常用的Array 類的方法。,使用集合(續(xù)),當(dāng)您要通過(guò)數(shù)組中的索引值位置訪問(wèn)數(shù)組元素時(shí),可以使用 ArrayList。下表描述了ArrayList 類的各種方法的使用。,在本章中,您學(xué)習(xí)了:分配給變量的內(nèi)存有兩種類型:值類型和引用類型。值類型是C# 中最簡(jiǎn)單的類型。值類型的變量可以直接在變量中包含數(shù)據(jù)。引用類型變量?jī)H
21、包含對(duì)數(shù)據(jù)的引用。數(shù)據(jù)存儲(chǔ)在不同的內(nèi)存區(qū)域。值類型變量在堆棧中保留值。,小結(jié),引用類型變量在堆棧中保留對(duì)對(duì)象的引用。要在一個(gè)變量中保留各種數(shù)據(jù)類型的相關(guān)數(shù)據(jù),可以使用結(jié)構(gòu)。C# 提供 enum 特性以創(chuàng)建用戶定義的數(shù)據(jù)類型,這種數(shù)據(jù)類型可以帶有數(shù)字作為能夠訪問(wèn)它們的索引值。數(shù)組是相同數(shù)據(jù)類型的值集合。,小結(jié)(續(xù)),foreach 語(yǔ)句解釋公共循環(huán)過(guò)程,并且您無(wú)需檢查數(shù)組大小。當(dāng)參數(shù)總數(shù)未知時(shí),可在帶有參數(shù)列表的方法中使用Par
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
評(píng)論
0/150
提交評(píng)論