本教程參考C#和ASP.NET程序設(shè)計(jì)教程撰寫,有什么不足之處請(qǐng)大家指出,或在老貓的理想BLOG留言。
繼續(xù)上回,數(shù)組是我們經(jīng)常用到的,我來(lái)介紹一下:數(shù)組是具有相同類型的一組數(shù)據(jù)。當(dāng)訪問(wèn)數(shù)組中的數(shù)據(jù)時(shí),可以通過(guò)下標(biāo)來(lái)指明。c#中數(shù)組元素可以為任何數(shù)據(jù)類型,數(shù)組下標(biāo)從0開始,即第一個(gè)元素對(duì)應(yīng)的下標(biāo)為0,以后逐個(gè)遞增。數(shù)組可以一維也可多維。 //包含6個(gè)元素的一維整數(shù)數(shù)組; int[] mf1=new int[6]; //注意初始化數(shù)組的范圍,或者指定初值; //包含6個(gè)元素的一維整數(shù)數(shù)組,初值1,2,3,4,5,6 int[] mf2=new int[6]{1,2,3,4,5,6}; //一維字符串?dāng)?shù)組,如果提供了初始值設(shè)定項(xiàng),則還可以省略 new 運(yùn)算符 string[] mf3={"c","c++","c#"}; //一維對(duì)象數(shù)組 Object[] mf4 = new Object[5] { 26, 27, 28, 29, 30 }; //二維整數(shù)數(shù)組,初值mf5[0,0]=1,mf5[0,1]=2,mf5[1,0]=3,mf5[1,1]=4 int[,] mf5=new int[,]{{1,2},{3,4}}; //6*6的二維整型數(shù)組 int[,] mf6=new mf[6,6]; 下面來(lái)看一個(gè)一維字符串?dāng)?shù)組的遍歷 using System; public class MikeCat { static void PrintArray(string[] arr) { //打印數(shù)組元素,arr.Length 表示數(shù)組元素的個(gè)數(shù) for(int i=0;i<arr.Length;i++) { Console.WriteLine("arr[{0}]={1}",i,arr[i]); } } public static void Main() { string[] arr={"c","c++","c#"}; //將數(shù)組作為一個(gè)參數(shù)傳遞 PrintArray(arr); } } 程序結(jié)果:arr[0]=c arr[1]=c++ arr[2]=c# 下面來(lái)看一個(gè)4行2列(4*2)的整型數(shù)組的遍歷: using System; public class MikeCat { static void PrintArray(int[,] arr) { //通過(guò)兩次FOR循環(huán)遍歷二維數(shù)組 for(int i=0;i<4;i++)//初始化i作為循環(huán)變量,i++實(shí)現(xiàn)該變量的自增運(yùn)算。 //for循環(huán)滿足條件后執(zhí)行完循環(huán)體一次后執(zhí)行i++,然后進(jìn)入下次循環(huán)。簡(jiǎn)單的c語(yǔ)法,這里做簡(jiǎn)單介紹照顧初學(xué)者。(詳細(xì)可參閱譚浩強(qiáng)先生的c語(yǔ)言程序設(shè)計(jì)一書) { for(int j=0;j<2;j++) { Console.WriteLine("arr[{0},{1}]={2}",i,j,arr[i,j]);//打印每個(gè)二維數(shù)組元素 } } } public static void Main() { //主函數(shù) //將數(shù)組作為一個(gè)參數(shù)傳遞 PrintArray(new int[,]{{1,2},{3,4},{5,6},{7,8}}; } }
運(yùn)行結(jié)果:arr[0,0]=1 arr[0,1]=2 arr[1,0]=3 arr[1,1]=4 arr[2,0]=5 arr[2,1]=6 arr[3,0]=7 arr[3,1]=8 類是面向?qū)ο蟪绦蛟O(shè)計(jì)的基本構(gòu)造塊,詳細(xì)我們?cè)诤竺娼榻B。這里我們介紹兩個(gè)特殊的類,即object類和string類 1.object類 object類是預(yù)定義類System.Object的別名,它是所有其他類型的基類。c#中所有類型都直接或間接從object類中繼承。因此,一個(gè)object類的變量可以賦予任何類型的值。 int i=30; object obj1; obj1=i; object obj2='a'; 2.string類 string類專門用于對(duì)字符串的操作,他是預(yù)定義類System.String的別名 string str1="mikecat"; 可以用"+"號(hào)連接兩個(gè)字符串。 string str2="username:"+"mikecat"; 如果訪問(wèn)單個(gè)字符,則要用下標(biāo)。 char c=str1[0]; 比較兩個(gè)字符串是否相等,可用比較操作符"=="http://有別于basic語(yǔ)法 bool b=(str1==str2);
c# 中,取消了c和c++中使用最靈活,也是最難掌握的指針。那么在c#中如何提供c/c++中的函數(shù)指針的功能?c#提供了委托(delegate),委托是繼承自System.Delegate類的引用類型。它相當(dāng)于函數(shù)指針原型。與函數(shù)指針不同的是,委托在c#中是類型安全的,委托特別適合于匿名調(diào)用。要使用委托需經(jīng)過(guò)三個(gè)步驟,即聲明、實(shí)例化、調(diào)用。 using System; //聲明一個(gè)名為mfDelegate的委托,該委托有一個(gè)string類型的參數(shù) //c#編譯器編譯時(shí)會(huì)產(chǎn)生一個(gè)新類,該類繼承自System.Delegate,類 //名為mfDelegate public delegate void mfDelegate(string name); public class MikeCat { //定義與mfDelegate有相同參數(shù)類型的方法Hello() public static void Hello(string name) { Console.WriteLine("您好,{0}!",name); } //定義與mfDelegate有相同參數(shù)類型的方法GoodBye() public static void GoodBye(string name) { Console.WriteLine("再見,{0}!",name); } public static void Main() { //創(chuàng)建一個(gè)mfDelegate實(shí)例 mf1 mfDelegate mf1=new mfDelegate(Hello); //調(diào)用mf1 mf1("mikecat"); mfDelegate mf2=new mfDelegate(GoodBye); mf2("mikecat"); //將mf1 mf2組合成一個(gè)新的委托mf3 mfDelegate mf3=mf1+mf2; //調(diào)用mf3 mf3("邁克老貓"); //從組合的委托mf3中刪除mf1 mfDelegate mf4=mf3-mf1; mf4("mikecat"); } }
程序結(jié)果:您好,mikecat!//mf1; 再見,mikecat!//mf2 您好,邁克老貓! 再見,邁克老貓!//mf3 再見,mikecat!//mf4
出處:藍(lán)色理想
責(zé)任編輯:cjj
上一頁(yè) C#系列教程 [1] 下一頁(yè) C#系列教程 [3]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|