第 04 章C#面向?qū)ο缶幊踢M(jìn)階課件_第1頁(yè)
第 04 章C#面向?qū)ο缶幊踢M(jìn)階課件_第2頁(yè)
第 04 章C#面向?qū)ο缶幊踢M(jìn)階課件_第3頁(yè)
第 04 章C#面向?qū)ο缶幊踢M(jìn)階課件_第4頁(yè)
第 04 章C#面向?qū)ο缶幊踢M(jìn)階課件_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、C#C#教程教程4.1 4.1 委托和事件委托和事件4.2 4.2 接口接口4.3 4.3 集合類(lèi)集合類(lèi)4.4 String4.4 String類(lèi)與類(lèi)與StringBuilderStringBuilder類(lèi)類(lèi)4.5 4.5 命名空間和局部類(lèi)命名空間和局部類(lèi)4.6 4.6 泛型泛型4.7 4.7 綜合應(yīng)用綜合應(yīng)用C#C#教程教程4.1.1 4.1.1 委托委托定義委托使用關(guān)鍵字delegate:delegate int SomeDelegate(int nID, string sName);再實(shí)例化:SomeDelegate d1 = new SomeDelegate(wr.InstanceMe

2、thod);其中wr是對(duì)象,有InstanceMethod實(shí)例方法。最后調(diào)用:d1(5, aaa);通過(guò)委托SomeDelegate實(shí)現(xiàn)對(duì)方法InstanceMethod的調(diào)用,調(diào)用還必須有一個(gè)前提條件:方法InstanceMethod有參數(shù)且和定義SomeDelegate的參數(shù)一致,并且返回值為int。方法InstanceMethod的定義: public int InstanceMethod(int nID, string sName)C#C#教程教程例例EX4_1EX4_1】設(shè)計(jì)一個(gè)管理企業(yè)員工上下班的設(shè)計(jì)一個(gè)管理企業(yè)員工上下班的WinFormWinForm程序。員工單擊程序。員工單擊“

3、上班上班”按鈕表示簽到上班,單擊按鈕表示簽到上班,單擊“下班下班”按鈕表示下班按鈕表示下班。定義一個(gè)管理上下班類(lèi)“StartOffWork”,其中“StartWork”和“OffWork”方法分別管理上班和下班。設(shè)計(jì)步驟如下:(1)新建WinForm項(xiàng)目并添加控件新建WinForm項(xiàng)目并命名為“EX4_1”,從工具箱中拖曳2個(gè)“Label”和2“Button”控件到窗體上。(2)設(shè)置控件與窗體屬性將Form1、button1和button2的“Text”屬性分別設(shè)置為“委托”、“上班”和“下班”,label1和label2的“Text”屬性都設(shè)置為空值。C#C#教程教程(3)添加代碼在窗體設(shè)計(jì)

4、器中分別雙擊button1和button2按鈕,在代碼編輯窗口中添加代碼,代碼如下所示。(4)運(yùn)行程序按“Ctrl+F5”組合鍵運(yùn)行程序,單擊“上班”按鈕,結(jié)果如圖4.1所示。如果單擊“下班”按鈕,則彈出對(duì)話框,如圖4.2所示。 圖4.1 單擊“上班”按鈕的結(jié)果 圖4.2 消息框C#C#教程教程說(shuō)明:說(shuō)明:(1)類(lèi)“MessageBox”是顯示可包含文本、按鈕和符號(hào)(通知并指示用戶(hù))的消息框的。其中顯示消息框的“Show”方法有很多重載方法。例如,代碼“MessageBox.Show(確實(shí)要關(guān)閉系統(tǒng)嗎,系統(tǒng)提示,MessageBoxButtons.YesNo);”將彈出如圖4.3所示的消息框。

5、在后面章節(jié)將詳細(xì)介紹消息框。 圖4.3 消息框C#C#教程教程(2)匿名方法。創(chuàng)建匿名方法為:首先創(chuàng)建一個(gè)委托:delegate void Dele(string s);然后實(shí)例化委托,指定該委托要執(zhí)行的代碼塊:Dele d=delegate(string str)/*ToDo*/;如在示例代碼中,將“下班”按鈕事件代碼改為匿名方法為:private void button2_Click(object sender, EventArgs e)/單擊“下班”按鈕執(zhí)行的動(dòng)作 OffWorkDelegate OWork = delegate(string offworktime) if (DateT

6、ime.Now Convert.ToDateTime(offworktime) /是否到了下班時(shí)間 MessageBox.Show(辛苦了!); /彈出消息框 else MessageBox.Show(還沒(méi)到下班時(shí)間!); ; OWork(17:30); (3)DateTime用于表示日期和時(shí)間,同時(shí)也包含許多檢索、操作和格式化日期和時(shí)間值的函數(shù)。C#C#教程教程C#事件是按“發(fā)布-預(yù)訂”方式工作的。先在一個(gè)類(lèi)中發(fā)布事件,然后在任意數(shù)量的類(lèi)中對(duì)事件進(jìn)行預(yù)訂。事件的工作過(guò)程如圖4.4所示。圖4.4 事件的工作過(guò)程C#C#教程教程C#事件機(jī)制是基于委托實(shí)現(xiàn)的,因此首先要定義一個(gè)委托EventHan

7、dler: public delegate void EventHandler(object sender , myEventArgs e)其中: myEventArgs類(lèi):派生于EventArgs類(lèi)(包含事件數(shù)據(jù)的類(lèi)的基類(lèi)),實(shí)現(xiàn)自定義事件數(shù)據(jù)的功能。 sender:表示發(fā)生事件的對(duì)象。定義事件格式為:event 事件的委托名 事件名如事件TextOut定義:public event EventHandler TextOut;事件的激活一般寫(xiě)成:if (TextOut != null) TextOut(this,new EventArgs();C#C#教程教程檢查T(mén)extOut事件有沒(méi)有被訂

8、閱,如果不為null,則表示有用戶(hù)訂閱。訂閱事件的是事件確發(fā)類(lèi),首先實(shí)例化EventSource,然后再訂閱事件:evsrc.TextOut += new EventSource.EventHandler(CatchEvent);/evsrc是事件確發(fā)類(lèi)對(duì)象也可以取消訂閱:evsrc.TextOut = new EventSource.EventHandler(CatchEvent);C#C#教程教程【例例EX4_2EX4_2】利用事件設(shè)計(jì)一個(gè)簡(jiǎn)單的顏色代碼,查詢(xún)利用事件設(shè)計(jì)一個(gè)簡(jiǎn)單的顏色代碼,查詢(xún)WinFormWinForm應(yīng)用應(yīng)用程序。程序。設(shè)計(jì)思路如下:在這里定義3個(gè)類(lèi),事件確發(fā)類(lèi)“Co

9、lorEvent”引發(fā)事件,事件處理類(lèi)“Color Recognize”顯示顏色代碼消息,派生于EventArgs類(lèi)的“ColorEventArgs”類(lèi)提供事件數(shù)據(jù)。設(shè)計(jì)步驟如下:(1)新建WinForm項(xiàng)目并添加控件新建WinForm項(xiàng)目并命名為“EX4_2”,從工具箱中拖曳1個(gè)“TextBox”和1個(gè)“Button”控件到窗體中。 (2)設(shè)置控件與窗體屬性將button1和Form1的“Text”屬性設(shè)置為“查詢(xún)”和“事件”。(3)添加代碼在窗體設(shè)計(jì)器中雙擊button1,添加代碼。代碼如下所示。C#C#教程教程(4)運(yùn)行程序按“Ctrl+F5”組合鍵運(yùn)行程序,輸入一種顏色,單擊“查詢(xún)”按

10、鈕,結(jié)果如圖4.5所示。 圖4.5 查詢(xún)顏色的代碼C#C#教程教程接口是用來(lái)定義一種程序的協(xié)定。接口好比一種模板,這種模板定義了實(shí)現(xiàn)接口的對(duì)象必須實(shí)現(xiàn)的方法,其目的就是讓這些方法可以作為接口實(shí)例被引用。接口的定義如下:public interface IPartAvoid SetDataA(string dataA);與類(lèi)的繼承類(lèi)似,接口的繼承也形成接口之間的層次結(jié)構(gòu)。例如:using System;interface IControlvoid Paint();interface ITextBox : IControlvoid SetText(string text);interface Il

11、istBox : IControlvoid SetItems(string items);interface IComboBox : ITextBox, IlistBox C#C#教程教程【例例EX4_3EX4_3】設(shè)計(jì)一個(gè)簡(jiǎn)單的計(jì)算器。其中定義一個(gè)類(lèi)設(shè)計(jì)一個(gè)簡(jiǎn)單的計(jì)算器。其中定義一個(gè)類(lèi)“CalculateCalculate”和一個(gè)接口和一個(gè)接口“ICalculateAICalculateA”,用于計(jì)算的類(lèi),用于計(jì)算的類(lèi)“CalculateCalculate”繼承接口繼承接口“ICalculateAICalculateA”。設(shè)計(jì)步驟如下:(1)新建WinForm項(xiàng)目并添加控件新建WinForm

12、項(xiàng)目并命名為“EX4_3”,在Form1中添加3個(gè)“TextBox”、1個(gè)“Button”和1個(gè)“Label”控件。(2)設(shè)置屬性將button1和Form1的“Text”屬性分別設(shè)置為“=”和“接口”。(3)添加代碼在窗體設(shè)計(jì)器中雙擊“=”按鈕,添加代碼,代碼如下所示。C#C#教程教程(4)運(yùn)行程序按“Ctrl+F5”組合鍵運(yùn)行程序,輸入數(shù)據(jù)和運(yùn)算符,單擊“=”按鈕,結(jié)果如圖4.6所示。圖4.6 例EX4_3運(yùn)行的結(jié)果C#C#教程教程4.3.1 Array4.3.1 Array類(lèi)類(lèi)1 1Array.Sort()Array.Sort()方法與方法與Array.Reverse()Array.Re

13、verse()方法方法Array.Sort()方法可以實(shí)現(xiàn)對(duì)一維數(shù)組的排序。常用的幾種形式及說(shuō)明如表4.1所示。形 式說(shuō) 明Array.Sort (Array)使用 Array 數(shù)組中每個(gè)元素的 Icomparable接口實(shí)現(xiàn),對(duì)整個(gè)一維 Array數(shù)組元素排序Array.Sort(Array,Array)基于第一個(gè)Array數(shù)組中的關(guān)鍵字,使用每個(gè)關(guān)鍵字的 Icomparable接口實(shí)現(xiàn),對(duì)兩個(gè)一維 Array數(shù)組對(duì)象排序Array.Sort(Array, IComparer)使用指定的 Icomparer接口,對(duì)一維Array數(shù)組元素排序Array.Sort(Array,Array,ICo

14、mparer)基于第一個(gè)Array數(shù)組中的關(guān)鍵字,使用指定的 Icomparer接口,對(duì)兩個(gè)一維 Array數(shù)組對(duì)象排序表4.1 Array.Sort()方法常用的幾種形式及說(shuō)明Array.Reverse()方法可以用來(lái)對(duì)整個(gè)數(shù)組的順序進(jìn)行反轉(zhuǎn),其形式如下: public static void Reverse(Arrary); C#C#教程教程2 2Array.BinarySearch()Array.BinarySearch()方法方法Array.BinarySearch()方法實(shí)現(xiàn)在已經(jīng)排序的一維數(shù)組中查找元素,常用的幾種形式及說(shuō)明如表4.2所示。形 式說(shuō) 明Array.BinarySea

15、rch(Array, Object)使用由Array數(shù)組中每個(gè)元素和指定的對(duì)象實(shí)現(xiàn)的IComparable接口,在整個(gè)一維排序Array數(shù)組中搜索特定元素Array.BinarySearch(Array,Object, IComparer)使用指定的IComparer接口,在整個(gè)一維排序Array數(shù)組中搜索值表4.2 Array. BinarySearch()方法常用的幾種形式及說(shuō)明C#C#教程教程【例例EX4_4EX4_4】設(shè)計(jì)一個(gè)對(duì)所輸入的數(shù)組進(jìn)行排序與查找的設(shè)計(jì)一個(gè)對(duì)所輸入的數(shù)組進(jìn)行排序與查找的WinFormWinForm應(yīng)應(yīng)用程序。用程序。設(shè)計(jì)思路如下:定義一個(gè)類(lèi)“CSort”,在此類(lèi)

16、中定義數(shù)組的排序和查找方法,其中在各個(gè)方法中調(diào)用對(duì)應(yīng)的Array的方法完成數(shù)組的排序與查找功能。設(shè)計(jì)步驟如下:(1)新建WinForm項(xiàng)目并添加控件新建WinForm項(xiàng)目并命名為“EX4_4”,在Form1中添加4個(gè)“TextBox”、2個(gè)“Button”和4個(gè)“Label”控件。(2)設(shè)置屬性將Form1、label1、label2、label3、label4、button1和button2的“Text”屬性分別設(shè)置為“數(shù)組的排序與查找”、“輸入數(shù)組:”、“正向排序:”、“反轉(zhuǎn)數(shù)組:”、“查找位置:”、“確定”和“清空”。C#C#教程教程(3)添加事件代碼在窗體編輯器中分別雙擊button1

17、和button2,系統(tǒng)自動(dòng)切換到代碼編輯窗口,添加代碼,代碼如下所示。(4)運(yùn)行程序按“Ctrl+F5”組合鍵運(yùn)行程序,輸入數(shù)據(jù),如圖4.7所示,單擊“確定”按鈕,結(jié)果如圖4.8所示。 圖4.7 輸入數(shù)據(jù) 圖4.8 排序和查找的結(jié)果C#C#教程教程堆棧是一種后進(jìn)先出(LIFO)的數(shù)據(jù)結(jié)構(gòu)。就像在貨物管理中,有一些實(shí)時(shí)性非常強(qiáng)的貨物,需要后入倉(cāng)先出倉(cāng),如圖4.9所示。圖4.9 后進(jìn)先出C#C#教程教程Stack堆棧類(lèi)表示對(duì)象的“后進(jìn)先出”集合。為了創(chuàng)建Stack類(lèi)的實(shí)例,需要調(diào)用Stack類(lèi)提供的構(gòu)造函數(shù)。Stack類(lèi)的構(gòu)造函數(shù)提供了三種重載形式,所以有三種實(shí)例化方法,如下所示:Stack sa

18、ck1 = new Stack();/使用默認(rèn)容量實(shí)例化Stack sack2 = new Stack(new string5 堆棧元素1, 堆棧元素2, 堆棧元素3, 堆棧元素4, 堆棧元素5 );/由string數(shù)組中的集合元素初始化堆棧對(duì)象Stack sack3 = new Stack(20); /創(chuàng)建堆棧對(duì)象并指定20個(gè)元素C#C#教程教程Stack類(lèi)的常用方法及說(shuō)明如表4.3所示。Stack類(lèi)將它的對(duì)象存儲(chǔ)在數(shù)組中。只要數(shù)組足夠大到可以存儲(chǔ)新的對(duì)象,調(diào)用Push方法就是非常有效的。方 法說(shuō) 明Clear從 Stack中移除所有對(duì)象Pop移除并返回位于Stack 頂部的對(duì)象Push將對(duì)

19、象插入Stack 的頂部Peek返回位于Stack 頂部的對(duì)象但不將其移除表4.3 Stack類(lèi)的常用方法及說(shuō)明C#C#教程教程【例例EX4_5EX4_5】利用利用StackStack設(shè)計(jì)一個(gè)備忘錄。設(shè)計(jì)一個(gè)備忘錄。設(shè)計(jì)步驟如下:(1)新建WinForm項(xiàng)目并添加控件新建WinForm項(xiàng)目并命名為“EX4_5”,在Form1中添加2個(gè)“TextBox”、2個(gè)“GroupBox”、1個(gè)“Label”和3個(gè)“Button”控件。(2)設(shè)置屬性將button1、button2、button3、groupBox1、groupBox2、Form1和label1的“Text”屬性分別設(shè)置為“”、“”、“”

20、、“填寫(xiě)備忘錄”、“所有備忘錄”、“備忘錄”和“共有0條備忘錄”。將textBox1與textBox2的Multiline和ScrollBars屬性值設(shè)置為“True”和“Both”。其中3個(gè)Button控件用于添加、修改和刪除備忘錄。(3)添加事件代碼在窗體設(shè)計(jì)器中分別雙擊3個(gè)Button控件和窗體。因?yàn)轭?lèi)“Stack”在“System.Collections”命名空間中,所以添加命名空間“using System.Collections;”,添加代碼,代碼如下所示。C#C#教程教程(4)運(yùn)行程序按“Ctrl+F5”組合鍵運(yùn)行程序,填寫(xiě)重要事件的日期和重要的事件,單擊“ ”按鈕添加備忘錄。如

21、果要修改,可單擊“ ”按鈕修改。單擊“ ”按鈕可刪除剛添加的備忘錄,如圖4.10所示。圖4.10 例EX4_5運(yùn)行的結(jié)果C#C#教程教程SortedList類(lèi)表示鍵/值對(duì)的集合,這些鍵/值對(duì)按鍵排序并可按照鍵和索引訪問(wèn)。SortedList的元素是鍵/值對(duì),這點(diǎn)和Hashtable相似,而其提供的索引的方法又和ArrayList相似。因此使用SortedList帶來(lái)兩者的優(yōu)點(diǎn),但隨之也帶來(lái)了效率的下降。SortedList類(lèi)的常用方法及說(shuō)明如表4.4所示。方 法說(shuō) 明Add 將帶有指定鍵和值的元素添加到 SortedList中Clear 從 SortedList 中移除所有元素Contains

22、 確定 SortedList 是否包含特定鍵ContainsKey 確定 SortedList 是否包含特定鍵ContainsValue 確定 SortedList 是否包含特定值CopyTo 將 SortedList 元素復(fù)制到一維 Array 實(shí)例中的指定索引位置Equals 已重載。 確定兩個(gè) Object 實(shí)例是否相等(從 Object 繼承)GetByIndex 獲取 SortedList 的指定索引處的值GetHashCode 用做特定類(lèi)型的哈希函數(shù)。GetHashCode 適合在哈希算法和數(shù)據(jù)結(jié)構(gòu)(如哈希表)中使用 (從 Object 繼承)GetKey 獲取 SortedLis

23、t 的指定索引處的鍵GetKeyList 獲取 SortedList 中的鍵GetValueList 獲取 SortedList 中的值IndexOfKey 返回 SortedList 中指定鍵的從零開(kāi)始的索引IndexOfValue 返回指定的值在 SortedList 中第一個(gè)匹配項(xiàng)的從零開(kāi)始的索引Remove 從 SortedList 中移除帶有指定鍵的元素RemoveAt 移除 SortedList 中指定索引處的元素SetByIndex 替換 SortedList 中指定索引處的值表表4.4 SortedList4.4 SortedList類(lèi)的常用方法及說(shuō)明類(lèi)的常用方法及說(shuō)明C#C#

24、教程教程常用屬性及說(shuō)明如表4.5所示。屬 性說(shuō) 明Capacity獲取或設(shè)置 SortedList 的容量Count獲取 SortedList 中包含的元素?cái)?shù)Item獲取并設(shè)置與 SortedList 中的特定鍵相關(guān)聯(lián)的值Keys獲取 SortedList 中的鍵Values獲取 SortedList 中的值表4.5 SortedList類(lèi)的常用屬性及說(shuō)明C#C#教程教程【例例EX4_6EX4_6】利用利用SortedListSortedList設(shè)計(jì)一個(gè)備忘錄。設(shè)計(jì)一個(gè)備忘錄。設(shè)計(jì)步驟如下:(1)新建WinForm項(xiàng)目并添加控件新建WinForm項(xiàng)目并命名為“EX4_6”,在Form1中添加2

25、個(gè)“TextBox”、2個(gè)“GroupBox”和2個(gè)“Button”控件。(2)設(shè)置屬性將button1、button2、groupBox1、groupBox2和Form1的“Text”屬性分別設(shè)置為“添加”、“清空”、“填寫(xiě)備忘錄”、“所有備忘錄”和“備忘錄”。將textBox2的Multiline和ScrollBars屬性值設(shè)置為“True”和“Both”。(3)添加事件代碼在窗體設(shè)計(jì)器中分別雙擊2個(gè)Button控件和窗體。因?yàn)轭?lèi)“SortedList”在“System.Collections”命名空間中,所以添加命名空間“using System.Collections;”,添加代碼,代

26、碼如下所示。C#C#教程教程(4)運(yùn)行程序按“Ctrl+F5”組合鍵運(yùn)行程序,填寫(xiě)重要事件的日期和重要的事件,單擊“添加”按鈕添加備忘錄。單擊“清空”按鈕刪除剛添加的備忘錄,結(jié)果如圖4.11所示。圖4.11 例EX4_6運(yùn)行的結(jié)果C#C#教程教程String對(duì)象不可變(只讀),因?yàn)橐坏﹦?chuàng)建了該對(duì)象,就不能修改它的值。有些方法或運(yùn)算符(如串聯(lián)運(yùn)算符)看似是修改String對(duì)象,但實(shí)際上是創(chuàng)建一個(gè)新的包含該修改的 String對(duì)象。例如:string s1 = Hello;string s2 = World;s1 += s2;/創(chuàng)建了一個(gè)新的字符串實(shí)例s1C#C#教程教程StringBuilder

27、會(huì)保留自己的字符串緩沖區(qū),在針對(duì)StringBuilder執(zhí)行字符串操作時(shí),會(huì)先檢查緩沖區(qū)的大小是否能容納新的字符串,不夠時(shí)再去增加需要的內(nèi)存數(shù)量,因此大幅降低了內(nèi)存配置的操作次數(shù),提高了效能。當(dāng)然大多數(shù)情況下,多估算一些緩沖區(qū)空間比后來(lái)又不斷加大要好。StringBuilder類(lèi)的常用構(gòu)造函數(shù)、方法和屬性及說(shuō)明如表4.6所示。構(gòu)造函數(shù)/方法/屬性說(shuō) 明構(gòu)造函數(shù)StringBuilder()初始化StringBuilder類(lèi)的新實(shí)例構(gòu)造函數(shù)StringBuilder(Int32)使用指定的容量初始化StringBuilder類(lèi)的新實(shí)例構(gòu)造函數(shù)StringBuilder(String)使用指定的

28、字符串初始化StringBuilder類(lèi)的新實(shí)例方法Append在此實(shí)例的結(jié)尾追加指定對(duì)象的字符串表示形式方法AppendLine將默認(rèn)的行終止符追加到此實(shí)例的末尾方法Insert將指定對(duì)象的字符串表示形式插到此實(shí)例中的指定字符位置方法Remove將指定范圍的字符從此實(shí)例中移除方法Replace將此實(shí)例中所有的指定字符或字符串替換為其他的指定字符或字符串屬性Capacity獲取或設(shè)置可包含在當(dāng)前實(shí)例所分配的內(nèi)存中的最大字符數(shù)屬性Chars獲取或設(shè)置此實(shí)例中指定字符位置處的字符屬性Length獲取或設(shè)置當(dāng)前StringBuilder對(duì)象的長(zhǎng)度表表4.6 StringBuilder4.6 Stri

29、ngBuilder類(lèi)的常用構(gòu)造函數(shù)、類(lèi)的常用構(gòu)造函數(shù)、方法和屬性及說(shuō)明方法和屬性及說(shuō)明C#C#教程教程【例例EX4_7EX4_7】設(shè)計(jì)一個(gè)簡(jiǎn)單的加密解密設(shè)計(jì)一個(gè)簡(jiǎn)單的加密解密WinFormWinForm程序。程序。設(shè)計(jì)步驟如下:(1)新建WinForm項(xiàng)目并添加控件新建WinForm項(xiàng)目并命名為“EX4_7”,在Form1中添加2個(gè)“TextBox”、2個(gè)“Label”和2個(gè)“Button”控件。(2)設(shè)置屬性將label1、label2、button1、button2和Form1的“Text”屬性分別設(shè)置為“加密前字符串:”、“加密后字符串:”、“加密”、“清空”和“加密解密”。(3)添加事

30、件代碼在窗體設(shè)計(jì)器中分別雙擊“加密”和“清空”按鈕。添加代碼,代碼如下所示。C#C#教程教程(4)運(yùn)行程序按“Ctrl+F5”組合鍵運(yùn)行程序,輸入要加密的字符,單擊“加密”按鈕,結(jié)果如圖4.12所示。圖4.12 加密字符串C#C#教程教程4.5.1 4.5.1 命名空間命名空間.NET Framework使用命名空間來(lái)組織眾多的類(lèi),它是類(lèi)的邏輯分類(lèi)。當(dāng)需要使用某個(gè)類(lèi)時(shí),可以使用帶有命名空間的完全限定名,例如:System.Console.WriteLine(中國(guó));其中,System是一個(gè)命名空間,Console是該命名空間中包含的類(lèi),WriteLine是該類(lèi)的一個(gè)方法。如果使用using關(guān)鍵

31、字引入了命名空間,則不必使用完全限定名,例如:using System;Console.WriteLine(中國(guó));C#C#教程教程【例例EX4_8EX4_8】修改修改【例例EX4_7EX4_7】,將其中的類(lèi),將其中的類(lèi)“EncryptEncrypt”放在另一放在另一個(gè)命名為個(gè)命名為“NSEncryptNSEncrypt”的命名空間中。的命名空間中。設(shè)計(jì)步驟如下:(1)添加代碼文件打開(kāi)“解決方案資源管理器”,右擊“EX4_7”“添加”“新建項(xiàng)”,在彈出的“添加新項(xiàng)”對(duì)話框中選擇“代碼文件”模板,使用默認(rèn)名稱(chēng)“CodeFile1.cs”,單擊“添加”按鈕。(2)新建命名空間及添加代碼在“Code

32、File1.cs”中引用命名空間“using System.Text;”,新建命名空間“NSEncrypt”,將“Form1.cs”中的類(lèi)“Encrypt”剪切并粘貼到此命名空間中,代碼如下所示。(3)“添加Form1.cs”中的代碼添加命名空間“using NSEncrypt;”,代碼如下。(4)運(yùn)行程序按“Ctrl+F5”組合鍵運(yùn)行程序,結(jié)果與【例EX4_7】相同。C#C#教程教程【例例EX4_9EX4_9】新建一個(gè)新建一個(gè)WinFormWinForm程序,查看程序,查看VS2008VS2008所添加的局部類(lèi)。所添加的局部類(lèi)。設(shè)計(jì)步驟如下:(1)新建WinForm項(xiàng)目新建WinForm項(xiàng)目

33、并命名為“EX4_9”。(2)查看代碼在“解決方案資源管理器”中打開(kāi)“Form1.Designer.cs”文件,代碼如下。打開(kāi)“Form1.cs”文件,代碼如下:namespace EX4_9 public partial class Form1 : Form public Form1() InitializeComponent(); C#C#教程教程通常一個(gè)方法或過(guò)程的簽名都有明確的數(shù)據(jù)類(lèi)型:public void ProcessData(int i)public void ProcessData(string i)public void ProcessData(double i)這些方法的

34、簽名中的int、string和double 都是明確的數(shù)據(jù)類(lèi)型。在訪問(wèn)這些方法的過(guò)程中需要提供確定類(lèi)型的參數(shù):ProcessData(123);ProcessData(abc);ProcessData(12.34);C#C#教程教程而如果將int、string和double這些類(lèi)型也當(dāng)成一種參數(shù)傳給方法時(shí),方法的定義便是這樣:public void ProcessData(T t)/T是int、string和double這些數(shù)據(jù)類(lèi)型的指代用戶(hù)在調(diào)用的時(shí)候便成了這樣:ProcessData(123); ProcessData(abc);ProcessData(12.34);C#C#教程教程【例例EX4_10EX4_1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論