




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C#初步電子時(shí)鐘程序第2章任務(wù)2.1 了解電子時(shí)鐘程序的效果本章任務(wù)1任務(wù)2.2 學(xué)習(xí)類和對(duì)象2任務(wù)2.3 編寫電子時(shí)鐘程序3任務(wù)2.4 學(xué)習(xí)窗體對(duì)象4任務(wù)2.5 學(xué)習(xí)注釋5任務(wù)2.6 學(xué)習(xí)MessageBox對(duì)象6任務(wù)2.7 學(xué)習(xí)DateTime類型7總結(jié)上機(jī)情況周四上機(jī)需要掌握環(huán)境變量的設(shè)置、命令提示符程序的起始位置,基本都能會(huì)用輸入代碼的過(guò)程中,出現(xiàn)一些問(wèn)題:多加空格、不注意大小寫,字符輸入錯(cuò)誤等,導(dǎo)致編譯出現(xiàn)錯(cuò)誤提示。VS2010界面的代碼輸入,很多同學(xué)無(wú)從下手。整理成word文檔需要注意截圖問(wèn)題:如何截圖、如何處理圖片、裁剪、添加文字、添加題注。周五上機(jī)內(nèi)容中,程序中需要修改一個(gè)設(shè)置
2、,課本上沒(méi)有提示,修改之后就可以調(diào)試成功了。C#控制臺(tái)應(yīng)用程序的結(jié)構(gòu)導(dǎo)入其他系統(tǒng)預(yù)定義元素部分命名空間類主方法完成方法中的C#代碼C#控制臺(tái)應(yīng)用程序的結(jié)構(gòu)導(dǎo)入其他系統(tǒng)預(yù)定義元素命名空間類方法中的C#代碼主方法1.2.3 C#程序代碼的基本書寫規(guī)則1. 程序代碼區(qū)分字母大小寫2. 語(yǔ)句書寫規(guī)則每個(gè)語(yǔ)句都必須用分號(hào)結(jié)尾允許在同一個(gè)代碼行上書寫多個(gè)語(yǔ)句塊結(jié)構(gòu),每個(gè)代碼塊用 來(lái)界定語(yǔ)句中作為語(yǔ)法成分的標(biāo)點(diǎn)符號(hào)必須是西文標(biāo)點(diǎn)采用嵌套縮進(jìn)格式C#程序代碼的基本書寫規(guī)則3. 注釋信息單行注釋“/”作為引導(dǎo)符多行注釋“/*”開始,“*/”結(jié)束XML注釋在一個(gè)代碼行上,“/”之后的內(nèi)容均為注釋信息,編譯時(shí)可提取
3、為XML文本任務(wù)2.1 了解電子時(shí)鐘程序的效果關(guān)于c#語(yǔ)言C#是一種相當(dāng)新的編程語(yǔ)言,C#的重要性體現(xiàn)在以下兩個(gè)方面: 它是專門為與Microsoft的.NET Framework一起使用而設(shè)計(jì)的。(.NET Framework是一個(gè)功能非常豐富的平臺(tái),可開發(fā)、部署和執(zhí)行分布式應(yīng)用程序)。 它是一種基于現(xiàn)代面向?qū)ο笤O(shè)計(jì)方法的語(yǔ)言,在設(shè)計(jì)它時(shí),Microsoft還吸取了其他類似語(yǔ)言的經(jīng)驗(yàn),這些語(yǔ)言是近20年來(lái)面向?qū)ο笠?guī)則得到廣泛應(yīng)用后才開發(fā)出來(lái)的。有一個(gè)很重要的問(wèn)題要弄明白:C#就其本身而言只是一種語(yǔ)言,盡管它是用于生成面向.NET環(huán)境的代碼,但它本身不是.NET的一部分。.NET支持的一些特性
4、,C#并不支持。而C#語(yǔ)言支持的另一些特性,.NET卻不支持(例如運(yùn)算符重載)!.NET Framework的核心是其運(yùn)行庫(kù)的執(zhí)行環(huán)境,稱為公共語(yǔ)言運(yùn)行庫(kù)(CLR)或.NET運(yùn)行庫(kù)。通常將在CLR的控制下運(yùn)行的代碼稱為托管代碼(managed code)。但是,在CLR執(zhí)行編寫好的源代碼之前,需要編譯它們(在C#中或其他語(yǔ)言中)。在.NET中,編譯分為兩個(gè)階段:(1) 把源代碼編譯為Microsoft中間語(yǔ)言(IL)。(2) CLR把IL編譯為平臺(tái)專用的代碼。這兩個(gè)階段的編譯過(guò)程非常重要,因?yàn)镸icrosoft中間語(yǔ)言(托管代碼)是提供.NET的許多優(yōu)點(diǎn)的關(guān)鍵。任務(wù)2.2 學(xué)習(xí)類和對(duì)象類和對(duì)象
5、的概念C#是一種完全面向?qū)ο蟮木幊陶Z(yǔ)言,對(duì)象可以被視為一個(gè)單元的代碼和數(shù)據(jù)的組合,是類的一個(gè)實(shí)例。對(duì)象(object),從概念層面講,就是某種事物的抽象(功能)。抽象原則包括數(shù)據(jù)抽象和過(guò)程抽象兩個(gè)方面:數(shù)據(jù)抽象就是定義對(duì)象的屬性;過(guò)程抽象就是定義對(duì)象的操作。對(duì)象封裝了數(shù)據(jù)和代碼(數(shù)據(jù)和程序)。封裝、繼承和多態(tài)所謂封裝,也就是把客觀事物抽象并封裝成對(duì)象,即將數(shù)據(jù)成員、屬性、方法和事件等集合在一個(gè)整體內(nèi)。通過(guò)訪問(wèn)控制,還可以隱藏內(nèi)部成員,只允許可信的對(duì)象訪問(wèn)或操作自己的部分?jǐn)?shù)據(jù)或方法繼承是允許使用現(xiàn)有類的功能,并在無(wú)需重新改寫原來(lái)的類的情況下,對(duì)這些功能進(jìn)行擴(kuò)展。繼承可以避免代碼復(fù)制和相關(guān)的代碼維
6、護(hù)等問(wèn)題繼承的過(guò)程,就是從一般到特殊的過(guò)程。被繼承的類稱為“基類(base class)”、“父類”或“超類(super class)”,通過(guò)繼承創(chuàng)建的新類稱為“子類(subclass)”或“派生類(derived class)”C#語(yǔ)言一個(gè)子類只能有一個(gè)基類(單一繼承),但允許實(shí)現(xiàn)多個(gè)接口多態(tài)性(polymorphism)是指同樣的消息被不同類型的對(duì)象接收時(shí)導(dǎo)致完全不同的行為。多態(tài)性允許每個(gè)對(duì)象以自己的方式去響應(yīng)共同的消息,從而允許用戶以更明確的方式建立通用軟件,提高軟件開發(fā)的可維護(hù)性例如,假設(shè)設(shè)計(jì)了一個(gè)繪圖軟件,所有的圖形(Square、Circle等)都繼承于基類Shape,每種圖形有自
7、己特定的繪制方法(draw)的實(shí)現(xiàn)。如果要顯示畫面的所有圖形,則可以創(chuàng)建一個(gè)基類Shape的集合,其元素分別指向各子類對(duì)象,然后循環(huán)調(diào)用父類類型對(duì)象的繪制方法(draw),實(shí)際繪制根據(jù)當(dāng)前賦值給它的子對(duì)象調(diào)用各自的繪制方法(draw),這就是多態(tài)性。如果要擴(kuò)展軟件的功能,例如增加圖形Eclipse,則只需要增加新的子類,并實(shí)現(xiàn)其繪制方法(draw)即可類和對(duì)象在.NET中一切皆為對(duì)象,C#中的的每個(gè)對(duì)象都由一個(gè)“類”來(lái)定義的。類描述對(duì)象的字段、屬性、方法和事件,對(duì)象是類的實(shí)例,我們可以使用類創(chuàng)建所需的任何數(shù)量的對(duì)象。類(class)是C#語(yǔ)言的核心,C#的一切類型都是類,所有的語(yǔ)句都必須位于類
8、內(nèi)類是一個(gè)數(shù)據(jù)結(jié)構(gòu),類定義數(shù)據(jù)類型的數(shù)據(jù)(字段)和行為(方法和其他函數(shù)成員)。對(duì)象是基于類的具體實(shí)體,有時(shí)稱為類的實(shí)例(instance)類與對(duì)象的關(guān)系類似于車型設(shè)計(jì)和具體的車類的聲明特性類修飾符partialclass 類名 類型形參 : 基類或接口類型形參約束 類體;創(chuàng)建和使用對(duì)象類名 對(duì)象名 = new 類名(參數(shù)表); 創(chuàng)建類的對(duì)象、創(chuàng)建類的實(shí)例、實(shí)例化類等說(shuō)法是等價(jià)的,都說(shuō)明以類為模板生成了一個(gè)對(duì)象的操作訪問(wèn)修飾符訪問(wèn)修飾符用來(lái)控制所修飾成員的可訪問(wèn)域,以使類或者類的成員在不同的范圍內(nèi)具有不同的可見(jiàn)性,從而實(shí)現(xiàn)數(shù)據(jù)和代碼的隱藏C#中使用如下訪問(wèn)修飾符:public(公共)、priva
9、te(私有)、internal(內(nèi)部)、protected(受保護(hù))訪問(wèn)修飾符意義public訪問(wèn)不受限制protected訪問(wèn)僅限于此類或從此類派生的類internal訪問(wèn)僅限于此程序(類所在的程序內(nèi),即同一個(gè)編譯單元:dll或exe中)protected internalprotected或者internal,即訪問(wèn)僅限于此程序或從此類派生的類private訪問(wèn)僅限于此類嵌套類類內(nèi)聲明的類稱為內(nèi)部類(internal class)或者嵌套類(nested class)。在編譯單元或命名空間內(nèi)聲明的類稱為頂級(jí)類,也稱包含類或者非嵌套類型(non-nested class)class Cont
10、ainer class Nested Nested() 分部類分部類型(partial type)可以將類(以及結(jié)構(gòu)和接口)劃分為多個(gè)部分,存儲(chǔ)在不同的源文件中,以便于開發(fā)和維護(hù)分部類主要用于2種場(chǎng)合:當(dāng)類的源碼十分龐大或需要不同程序員同時(shí)進(jìn)行維護(hù)時(shí),使用分部類可以靈活地滿足這種要求;使用繼承開發(fā)工具源代碼生成器時(shí),將計(jì)算機(jī)生成的類型部分和用戶編寫的類型部分互相分開,以便更容易地?cái)U(kuò)充工具生成的代碼使用類修飾符partial,用來(lái)實(shí)現(xiàn)通過(guò)多個(gè)部分來(lái)定義一個(gè)類類的成員類的主要成員包括兩種類型,即描述狀態(tài)的數(shù)據(jù)成員和描述操作的函數(shù)成員。類的成員或者是靜態(tài)成員(static member),或者是實(shí)例
11、成員 (instance member)類所能包含的成員種類:成員說(shuō)明常量與類關(guān)聯(lián)的常量值字段類的變量方法類可執(zhí)行的計(jì)算和操作屬性定義一些命名特性以及與讀取和寫入這些特性相關(guān)的操作索引器與以數(shù)組方式索引類的實(shí)例相關(guān)聯(lián)的操作事件可由類生成的通知運(yùn)算符類所支持的轉(zhuǎn)換和表達(dá)式運(yùn)算符構(gòu)造函數(shù)初始化類的實(shí)例或類本身所需的操作析構(gòu)函數(shù)在永久丟棄類的實(shí)例之前執(zhí)行的操作類型類所聲明的嵌套類型數(shù)據(jù)成員數(shù)據(jù)成員用于描述類的狀態(tài),包括:字段、常量和事件數(shù)據(jù)成員可以是靜態(tài)數(shù)據(jù),與整個(gè)類相關(guān);或?qū)嵗龜?shù)據(jù),類的每個(gè)實(shí)例都有它自己的數(shù)據(jù)副本字段是與類相關(guān)的變量。常量是與類相關(guān)的常量。使用const關(guān)鍵字來(lái)聲明常量。事件是在
12、發(fā)生某些行為(例如改變類的字段或?qū)傩?,或者進(jìn)行了某種形式的用戶交互操作)時(shí)由類生成的通知,它可以讓對(duì)象通知調(diào)用程序函數(shù)成員函數(shù)成員用于提供操作類中數(shù)據(jù)的某些功能,包括方法、屬性、構(gòu)造函數(shù)和析構(gòu)函數(shù)、運(yùn)算符以及索引器方法是與某個(gè)類相關(guān)的函數(shù),它們可以是實(shí)例方法,也可以是靜態(tài)方法。實(shí)例方法處理類的某個(gè)實(shí)例,靜態(tài)方法提供了更一般的功能,不需要實(shí)例化一個(gè)類就可以直接調(diào)用(例如Console.WriteLine())屬性(property)是字段的自然擴(kuò)展。屬性和字段都是命名的成員,都具有相關(guān)的類型,而且用于訪問(wèn)字段和屬性的語(yǔ)法也相同。字段表示存儲(chǔ)位置,而屬性則通過(guò)訪問(wèn)器(accessor)指定在它們的
13、值被讀取或?qū)懭霑r(shí)需執(zhí)行的語(yǔ)句(一般用于讀取或?qū)懭腩惖乃接凶侄危?。?gòu)造函數(shù)是名稱與類名相同的特殊方法,當(dāng)類被實(shí)例化時(shí),首先就會(huì)執(zhí)行構(gòu)造函數(shù)。析構(gòu)函數(shù)也是一種特殊的方法,其名稱由類名前加上符號(hào)“”所構(gòu)成。當(dāng)類的實(shí)例無(wú)效時(shí),這個(gè)函數(shù)就會(huì)被執(zhí)行。索引器與屬性相似,其目的是使類的實(shí)例可按與數(shù)組相同的(語(yǔ)法)方式進(jìn)行索引訪問(wèn)。運(yùn)算符用于定義類的實(shí)例的運(yùn)算操作,一般用于對(duì)預(yù)定義的運(yùn)算符進(jìn)行重載(重新定義運(yùn)算規(guī)則)靜態(tài)成員和實(shí)例成員靜態(tài)成員屬于類,被這個(gè)類的所有實(shí)例所共享。實(shí)例成員屬于對(duì)象(類的實(shí)例),每一個(gè)對(duì)象都有實(shí)例成員的不同副本。常量會(huì)隱式地聲明為靜態(tài)成員,其他沒(méi)有用static修飾的成員都是實(shí)例成員或
14、者稱為非靜態(tài)成員靜態(tài)成員的特征靜態(tài)成員必須通過(guò)類名來(lái)引用。例System.Console.WriteLine(Hello, World!)或者Console.WriteLine(Hello, World!)。一個(gè)靜態(tài)字段共享同一個(gè)存儲(chǔ)位置。創(chuàng)建了一個(gè)類的多個(gè)實(shí)例時(shí),其靜態(tài)字段在內(nèi)存中占同一存儲(chǔ)區(qū)域,即永遠(yuǎn)只有一個(gè)副本。靜態(tài)函數(shù)成員(方法、屬性、事件、運(yùn)算符或構(gòu)造函數(shù))屬于類的成員,故在其代碼體內(nèi)不能直接引用實(shí)例成員,否則將產(chǎn)生編譯錯(cuò)誤實(shí)例成員的特征實(shí)例成員必須通過(guò)對(duì)象實(shí)例來(lái)引用。實(shí)例字段屬于類的實(shí)例。每當(dāng)創(chuàng)建一個(gè)類的實(shí)例時(shí),都在內(nèi)存中為該實(shí)例字段開辟一塊存儲(chǔ)區(qū)域。類的每個(gè)實(shí)例分別包含各實(shí)例字段
15、的單獨(dú)副本。實(shí)例函數(shù)成員(方法、屬性、索引器、實(shí)例構(gòu)造函數(shù)或析構(gòu)函數(shù))作用于類的給定實(shí)例,故在其代碼體內(nèi)既可以使用實(shí)例成員,也可以直接引用類的靜態(tài)成員字段的聲明和訪問(wèn)聲明:字段修飾符 類型 字段名 = 初始化;訪問(wèn):對(duì)象.字段名;靜態(tài)字段和實(shí)例字段使用 static 修飾符聲明的字段定義了一個(gè)靜態(tài)字段(static field)。一個(gè)靜態(tài)字段只標(biāo)識(shí)一個(gè)存儲(chǔ)位置。靜態(tài)字段不是特定實(shí)例的一部分,而是所有實(shí)例之間共享一個(gè)副本,又稱為靜態(tài)變量(static variable)不使用 static 修飾符聲明的字段定義了一個(gè)實(shí)例字段(instance field)。類的每個(gè)實(shí)例都包含了該類的所有實(shí)例字段
16、的一個(gè)單獨(dú)副本。實(shí)例字段屬于特定的實(shí)例,又稱為實(shí)例變量(instance variable)靜態(tài)字段的聲明:修飾符 static 類型 字段名 = 初始化;訪問(wèn)類的靜態(tài)字段:類名.字段名;常量字段常量(constant)是在編譯時(shí)設(shè)置其值并且永遠(yuǎn)不能更改其值的字段。常量是表示常量值的類成員,常量的值在編譯時(shí)計(jì)算常量的聲明:修飾符 const 類型 字段名 = 初始化;常量是靜態(tài)成員,但聲明常量時(shí)既不要求也不允許使用 static 修飾符只讀字段只讀字段只能在聲明字段時(shí)賦值或在類的構(gòu)造函數(shù)內(nèi)被賦值,在其他位置,只讀字段的值不能更改只讀字段的聲明:修飾符 readonly 類型 字段名 = 初始化
17、;只讀字段與常量的區(qū)別常量只能在聲明時(shí)賦值,常量的值在編譯時(shí)就已經(jīng)確定,在程序中不能改變只讀字段可以在聲明時(shí)或者在構(gòu)造函數(shù)內(nèi)賦值,只讀字段的值是在運(yùn)行時(shí)確定的常量的類型只能是下列類型之一:sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double、decimal、bool、string或者枚舉類型;而只讀變量可以是任何類型可變字段可變字段(volatilevltail field)不受編譯器優(yōu)化的限制,可以由多個(gè)同時(shí)執(zhí)行的線程修改,可以確保該字段在任何時(shí)間呈現(xiàn)的都是最新的值可變字段的聲明:修飾符 volatile 類型 字段名 =
18、 初始化;方法方法的聲明:方法修飾符 返回值類型 方法名 (形參列表) 方法體;方法的調(diào)用方法類似于字段的訪問(wèn):對(duì)象.方法名(實(shí)參列表);參數(shù)的傳遞方法的聲明可以包含一個(gè)形參列表方法調(diào)用時(shí)則通過(guò)傳遞實(shí)參列表有四種類型的參數(shù)值形參(value parameter),聲明時(shí)不帶任何修飾符引用形參(reference parameter),用 ref 修飾符聲明輸出形參(output parameter),用 out 修飾符聲明形參數(shù)組(parameter array),用 params 修飾符聲明1值形參聲明時(shí)不帶修飾符的形參是值形參,用于輸入?yún)?shù)的傳遞值形參對(duì)應(yīng)于方法聲明空間的局部變量,其初始值
19、為方法調(diào)用所提供的相應(yīng)實(shí)參(即創(chuàng)建一個(gè)新的存儲(chǔ)副本),故對(duì)應(yīng)實(shí)參必須是一個(gè)表達(dá)式,且類型可以隱式轉(zhuǎn)換為形參的類型。在方法體代碼中,可以將新值賦給值形參。但賦值只影響方法聲明空間的局部存儲(chǔ)位置,對(duì)值形參的修改不會(huì)影響在方法調(diào)用時(shí)由調(diào)用方給出的實(shí)參2引用形參用 ref 修飾符聲明的形參是引用形參,用于輸入和輸出參數(shù)的傳遞為引用參數(shù)傳遞的實(shí)參必須是變量。引用形參并不創(chuàng)建新的存儲(chǔ)位置,其存儲(chǔ)位置就是方法調(diào)用中作為實(shí)參給出的那個(gè)變量所表示的存儲(chǔ)位置。故當(dāng)控制權(quán)傳遞回調(diào)用方法時(shí),在方法中對(duì)參數(shù)的任何更改都將反映在該變量中。方法調(diào)用中的對(duì)應(yīng)實(shí)參必須為與形參類型相同的變量,且變量在作為引用形參傳遞之前,必須先
20、明確賦值3輸出形參用 out 修飾符聲明的形參是輸出形參,用于輸出參數(shù)的傳遞與引用形參類似,輸出形參并不創(chuàng)建新的存儲(chǔ)位置,其存儲(chǔ)位置就是方法調(diào)用中作為實(shí)參給出的那個(gè)變量所表示的存儲(chǔ)位置。事實(shí)上,輸出形參主要用于當(dāng)控制權(quán)傳遞回調(diào)用方法時(shí),把輸出值傳遞給相應(yīng)的變量方法調(diào)用中的對(duì)應(yīng)實(shí)參必須為與形參類型相同的變量,但變量在作為輸出形參傳遞之前,不需要明確賦值,但是在將變量作為輸出形參傳遞的調(diào)用之后,必須明確賦值4形參數(shù)組用 params 修飾符聲明的形參是形參數(shù)組,允許向方法傳遞可變數(shù)量的實(shí)參如果形參表包含一個(gè)形參數(shù)組,則該形參數(shù)組必須位于該列表的最后,且必須是一維數(shù)組類型。例如,類型 string
21、和 string 可用作形參數(shù)組的類型,但是類型 string, 不能形參數(shù)組主要用于傳遞可變數(shù)量的參數(shù)params 修飾符不能與 ref 和 out 修飾符組合起來(lái)使用方法的重載當(dāng)定義兩種或多種具有相同名稱的方法時(shí),就稱作重載(overloading)靜態(tài)方法和實(shí)例方法使用 static 修飾符聲明的方法為靜態(tài)方法(static method)。靜態(tài)方法不對(duì)特定實(shí)例進(jìn)行操作,并且只能直接訪問(wèn)靜態(tài)成員。在靜態(tài)方法中引用 this 會(huì)導(dǎo)致編譯時(shí)錯(cuò)誤。不使用 static 修飾符聲明的方法為實(shí)例方法(instance method)。實(shí)例方法對(duì)類的某個(gè)給定的實(shí)例進(jìn)行操作,并且能夠訪問(wèn)靜態(tài)成員和實(shí)例
22、成員。在調(diào)用實(shí)例方法的實(shí)例上,可以通過(guò) this 顯式地訪問(wèn)該實(shí)例。靜態(tài)方法通過(guò)類來(lái)訪問(wèn);實(shí)例方法通過(guò)類的實(shí)例來(lái)訪問(wèn)靜態(tài)方法的聲明:方法修飾符 static 返回值類型 方法名 (形參列表) 方法體;訪問(wèn)類的靜態(tài)方法:類名.方法名 (實(shí)參列表);分部方法使用partial修飾符定義分部方法(partial method)分部方法在分部類的一個(gè)部分中聲明分部方法定義,而在分部類的另一個(gè)部分中聲明分部方法實(shí)現(xiàn)這兩個(gè)聲明必須具有相同的修飾符、類型、方法名、形參數(shù)列表外部方法當(dāng)方法聲明包含 extern 修飾符時(shí),稱該方法為外部方法(external method)。外部方法是在外部實(shí)現(xiàn)的(通常為dl
23、l庫(kù)函數(shù)),故外部方法聲明不提供任何實(shí)際實(shí)現(xiàn),其方法體只由一個(gè)分號(hào)組成。外部方法不可以是泛型。extern 修飾符通常與 DllImport特性一起使用,以引用由 DLL(動(dòng)態(tài)鏈接庫(kù))實(shí)現(xiàn)的外部函數(shù)。當(dāng)外部方法包含 DllImport特性時(shí),該方法聲明必須同時(shí)包含一個(gè) static 修飾符屬性的聲明和訪問(wèn)屬性的聲明:屬性修飾符 類型 屬性名 get get訪問(wèn)器體 set set訪問(wèn)器體 ;屬性的訪問(wèn):對(duì)象.屬性名C#中的屬性通過(guò)get和set訪問(wèn)器來(lái)對(duì)屬性的值進(jìn)行讀寫靜態(tài)屬性和實(shí)例屬性當(dāng)屬性聲明包含 static 修飾符時(shí),稱該屬性為靜態(tài)屬性(static property);當(dāng)不存在 st
24、atic 修飾符時(shí),稱該屬性為實(shí)例屬性(instance property) 靜態(tài)屬性不與特定實(shí)例相關(guān)聯(lián),因此在靜態(tài)屬性的訪問(wèn)器內(nèi)引用 this 會(huì)導(dǎo)致編譯時(shí)錯(cuò)誤。實(shí)例屬性與類的一個(gè)給定實(shí)例相關(guān)聯(lián),并且該實(shí)例可以在屬性的訪問(wèn)器內(nèi)作為 this來(lái)訪問(wèn)靜態(tài)屬性的聲明:訪問(wèn)類的靜態(tài)屬性:類名.屬性名;屬性修飾符 static類型 屬性名 get get訪問(wèn)器體 set set訪問(wèn)器體 ;自動(dòng)實(shí)現(xiàn)的屬性自動(dòng)實(shí)現(xiàn)的屬性聲明的基本形式如下:屬性修飾符 類型 屬性名get;set;當(dāng)聲明自動(dòng)實(shí)現(xiàn)的屬性時(shí),編譯器將創(chuàng)建一個(gè)私有的匿名后備字段,該字段只能通過(guò)屬性的 get 和 set 訪問(wèn)器進(jìn)行訪問(wèn)索引器的聲明
25、和訪問(wèn)索引器(indexer)允許對(duì)象像數(shù)組一樣進(jìn)行索引,并通過(guò)索引來(lái)操作對(duì)象的元素索引器與屬性類似。索引器又被稱為帶參數(shù)的屬性索引器聲明的基本形式為:修飾符 類型 this 參數(shù)表 get get訪問(wèn)器體 set set訪問(wèn)器體 ;索引的聲明與屬性的聲明基本相同。不同之處在于:索引器的名稱固定為關(guān)鍵字this,且必須指定索引的參數(shù)表索引器的訪問(wèn)方式:對(duì)象索引參數(shù)運(yùn)算符重載運(yùn)算符重載聲明的基本形式如下:修飾符 static類型 operator 運(yùn)算符(參數(shù)表) 轉(zhuǎn)換代碼體;構(gòu)造函數(shù)和析構(gòu)函數(shù)實(shí)例構(gòu)造函數(shù)(instance constructor)用于執(zhí)行類的實(shí)例的初始化工作。創(chuàng)建對(duì)象時(shí),根據(jù)
26、傳入的參數(shù)列表,將調(diào)用相應(yīng)的構(gòu)造函數(shù)。每個(gè)類都有構(gòu)造函數(shù),如果沒(méi)有顯式聲明構(gòu)造函數(shù),則編譯器會(huì)自動(dòng)生成一個(gè)默認(rèn)的構(gòu)造函數(shù)(無(wú)參數(shù)),默認(rèn)構(gòu)造函數(shù)實(shí)例化對(duì)象,并將未賦初值的字段設(shè)置為默認(rèn)值(例如,宇符串為空,數(shù)值數(shù)據(jù)為0,bool為False)構(gòu)造函數(shù)構(gòu)造函數(shù)聲明的基本形式如下:修飾符 類名 (參數(shù)列表) 構(gòu)造函數(shù)方法體;構(gòu)造函數(shù)具有下列特征構(gòu)造函數(shù)的名稱與類名相同可以創(chuàng)建多個(gè)構(gòu)造函數(shù),以根據(jù)不同的參數(shù)列表進(jìn)行相應(yīng)的初始化構(gòu)造函數(shù)不能聲明返回類型(也不能使用void),也不能返回值一般構(gòu)造函數(shù)總是public 類型的。private 類型的構(gòu)造函數(shù)表明類不能被實(shí)例化,通常用于只含有靜態(tài)成員的類創(chuàng)
27、建對(duì)象時(shí),自動(dòng)調(diào)用對(duì)應(yīng)的構(gòu)造函數(shù),不能顯式調(diào)用構(gòu)造函數(shù)在構(gòu)造函數(shù)中不要做對(duì)類的實(shí)例進(jìn)行初始化以外的事情私有構(gòu)造函數(shù)如果構(gòu)造函數(shù)被聲明為private類型,則這個(gè)構(gòu)造函數(shù)不能從類外訪問(wèn),因此也不能用來(lái)在類外創(chuàng)建對(duì)象私有構(gòu)造函數(shù)一般用于只包含靜態(tài)成員的類。通過(guò)添加一個(gè)空的私有實(shí)例構(gòu)造函數(shù),可以阻止其實(shí)例化,以確保程序只能通過(guò)類名來(lái)引用所有的靜態(tài)成員靜態(tài)構(gòu)造函數(shù)靜態(tài)構(gòu)造函數(shù)(static constructor)用于實(shí)現(xiàn)初始化類(而不是初始化實(shí)例或?qū)ο螅┧璧牟僮鳌lo態(tài)構(gòu)造函數(shù)用于初始化任何靜態(tài)數(shù)據(jù),或用于執(zhí)行僅需執(zhí)行一次的特定操作。在創(chuàng)建第一個(gè)實(shí)例或引用任何靜態(tài)成員之前,將自動(dòng)調(diào)用靜態(tài)構(gòu)造函數(shù)。類
28、的靜態(tài)構(gòu)造函數(shù)在給定程序中至多執(zhí)行一次。靜態(tài)構(gòu)造函數(shù)聲明的基本形式如下:static 類名 () 構(gòu)造函數(shù)方法體;靜態(tài)構(gòu)造函數(shù)既沒(méi)有訪問(wèn)修飾符,也沒(méi)有參數(shù)在創(chuàng)建第一個(gè)實(shí)例或引用任何靜態(tài)成員之前,自動(dòng)調(diào)用靜態(tài)構(gòu)造函數(shù)析構(gòu)函數(shù)析構(gòu)函數(shù)(destructor)用于實(shí)現(xiàn)銷毀類的實(shí)例所需的操作,如釋放對(duì)象占用的非托管資源(例如:打開的文件、網(wǎng)絡(luò)連接等)析構(gòu)函數(shù)聲明的基本形式如下:類名() 析構(gòu)函數(shù)方法體;析構(gòu)函數(shù)具有下列特征:析構(gòu)函數(shù)的名稱由類名前面加上“”字符構(gòu)成析構(gòu)函數(shù)既沒(méi)有修飾符,沒(méi)有返回值類型(甚至也不能使用void),也沒(méi)有參數(shù)無(wú)法繼承或重載析構(gòu)函數(shù),一個(gè)類只能有一個(gè)析構(gòu)函數(shù)不能顯式調(diào)用析構(gòu)函
29、數(shù)可以認(rèn)為析構(gòu)函數(shù)是構(gòu)造函數(shù)的相反操作析構(gòu)函數(shù)隱式地調(diào)用對(duì)象基類的Finalize(終結(jié))方法,即對(duì)繼承鏈遞歸調(diào)用 Finalize 方法。故不應(yīng)使用空析構(gòu)函數(shù)任務(wù)2.2 學(xué)習(xí)類和對(duì)象屬性、方法和事件屬性是對(duì)象的特征,不同的對(duì)象有不同的特征。屬性控制著對(duì)象的外觀和行為。屬性的設(shè)置可以通過(guò)屬性窗口直接設(shè)置編寫代碼來(lái)設(shè)置編寫代碼設(shè)置格式為:對(duì)象名.屬性名稱= 屬性值;任務(wù)2.2 學(xué)習(xí)類和對(duì)象屬性、方法和事件所謂方法,就是通過(guò)完成特定任務(wù)而對(duì)對(duì)象進(jìn)行的操作。使用對(duì)象方法的語(yǔ)句格式為:對(duì)象名.方法( );為了區(qū)分屬性和方法,C#要求方法名的后面必須加一對(duì)括號(hào)。任務(wù)2.2 學(xué)習(xí)類和對(duì)象屬性、方法和事件C
30、#采用事件驅(qū)動(dòng)機(jī)制,所謂事件,就是對(duì)象發(fā)送的消息,表示特定操作的發(fā)生。操作可能是由用戶交互(例如鼠標(biāo)單擊或鍵盤按下)引起的,也可能是由某些其他的程序邏輯觸發(fā)的(如啟動(dòng)窗體)。在.NET Framework中,已經(jīng)為窗體和控件定義了大量的事件,我們只要編寫相應(yīng)的事件處理程序,告訴程序,當(dāng)某個(gè)事件發(fā)生時(shí),應(yīng)該如何處理就可以了。任務(wù)2.2 學(xué)習(xí)類和對(duì)象屬性、方法和事件在C#中,編寫事件處理程序的步驟如下: (1)單擊選擇要編寫事件處理程序的窗體、控件、組件等對(duì)象。(2)在“屬性窗口”中單擊事件按鈕。(3)單擊要編寫處理程序的事件。(4)輸入名稱,并回車(或雙擊左側(cè)事件名稱)。(5)在VS自動(dòng)打開的代
31、碼編輯器中編寫處理代碼。圖2.3 事件選項(xiàng)卡事件按鈕在此處輸入程序名稱任務(wù)2.3 編寫電子時(shí)鐘程序創(chuàng)建新的Windows應(yīng)用程序Windows應(yīng)用程序結(jié)構(gòu)編寫電子時(shí)鐘應(yīng)用程序運(yùn)行程序保存和打開“電子時(shí)鐘”程序(1)啟動(dòng)VS集成開發(fā)環(huán)境(2)在“起始頁(yè)”頁(yè)面上,單擊“新建項(xiàng)目”鏈接,打開“新建項(xiàng)目”對(duì)話框。(3)在“新建項(xiàng)目”對(duì)話框中,選中“項(xiàng)目類型”列表中的“Visaul C#Windows”,然后在“模板”列表中選中“Windows窗體應(yīng)用程序”。(4)在“名稱”文本框中,輸入項(xiàng)目的名稱 “Clock”,然后在“位置”文本框中指定程序的位置。單擊此處運(yùn)行程序任務(wù)2.3 編寫電子時(shí)鐘程序創(chuàng)建新
32、的Windows應(yīng)用程序Windows應(yīng)用程序結(jié)構(gòu)編寫電子時(shí)鐘應(yīng)用程序運(yùn)行程序保存和打開“電子時(shí)鐘”程序1解決方案文件存儲(chǔ)文件的擴(kuò)展名是.sln,在一個(gè)解決方案中可以包含多個(gè)項(xiàng)目,本例中名為Clock.sln。2項(xiàng)目文件解決方案下方的Clock文件被稱為項(xiàng)目文件,包含了項(xiàng)目一些基本信息,它的擴(kuò)展名是.csproj。3窗體文件Form1.cs文件就是窗體文件,我們對(duì)窗體編寫的代碼一般都存放在這個(gè)文件里4主程序文件Program.cs文件被稱為主程序文件,其中包含程序的入口Main()方法。C#程序是從Main()方法(函數(shù))開始執(zhí)行的。窗體有兩種編輯窗口,分別是窗體設(shè)計(jì)器和窗體代碼編輯器。可以使
33、用解決方案資源管理器窗口中的“查看代碼”和“查看設(shè)計(jì)器”這兩個(gè)工具在窗體設(shè)計(jì)器窗口和窗體代碼編輯器窗口間實(shí)現(xiàn)切換。查看代碼查看設(shè)計(jì)器任務(wù)2.3 編寫電子時(shí)鐘程序創(chuàng)建新的Windows應(yīng)用程序Windows應(yīng)用程序結(jié)構(gòu)編寫電子時(shí)鐘應(yīng)用程序運(yùn)行程序保存和打開“電子時(shí)鐘”程序一個(gè)Windows應(yīng)用程序的編寫一般需要經(jīng)過(guò)下面的幾個(gè)步驟:創(chuàng)建用戶界面設(shè)置屬性編寫程序代碼(1)將鼠標(biāo)指針停在窗體的右下角,直到指針形狀變成“雙箭頭”為止,然后拖動(dòng)鼠標(biāo),調(diào)整窗體的大小,使窗體變成合適的大小。(2)單擊“工具箱”中的Lable控件。(3)將鼠標(biāo)移到窗體上。鼠標(biāo)指針變成十字形狀,然后拖動(dòng)鼠標(biāo),在窗體中安放一個(gè)La
34、ble控件,此時(shí)窗體中應(yīng)出現(xiàn)一個(gè)顯示為label1的Label控件。利用“格式”菜單下的選項(xiàng)可以很方便地進(jìn)行多個(gè)控件大小和位置的控制(1)單擊選中窗體上的Label控件。修改控件的name屬性為lblClock。(2)單擊“視圖”菜單中的“屬性窗口”命令,或按下F4鍵,顯示屬性窗口。(3)調(diào)整屬性窗口的大小,或滾動(dòng)“屬性窗口”,找到Text屬性。這個(gè)屬性代表Label控件上顯示的文字。(4)雙擊Text屬性,刪除原來(lái)的label1文字。(5)打開“屬性窗口”頂部的“對(duì)象”下拉列表框,在這個(gè)列表框中將顯示出當(dāng)前窗體中的所有控件。(6)選中列表框中的“Form1 System.Windows.Fo
35、rms.Form” 選項(xiàng),它代表窗體自身。(7)在Text屬性欄中輸入新的屬性值:“電子時(shí)鐘程序”,此時(shí)可以看到窗體左上角將原來(lái)顯示的Form1,轉(zhuǎn)變成“電子時(shí)鐘程序”。(8)為了能不斷的顯示時(shí)間,我們還需加入一個(gè)計(jì)時(shí)器Timer組件。在工具欄中選擇“組件”,雙擊其中的Timer組件,將向窗體中添加名稱為timer1的組件。(9)在timer1的屬性窗口中將Enable屬性設(shè)置為True,Interval屬性設(shè)置為1000。在窗體設(shè)計(jì)器中,單擊timer1組件,在屬性窗口的事件選項(xiàng)卡中雙擊Tick事件,在打開的代碼編輯器窗口的timer1_Tick事件中輸入如下代碼:lblClock.Text
36、 = DateTime.Now.ToString();Tick事件是Timer計(jì)時(shí)器組件中一個(gè)主要事件,當(dāng)Timer組件Enable屬性被設(shè)置為True時(shí)Timer組件開始工作,每隔Interval屬性設(shè)置的時(shí)間(單位是毫秒),Timer組件中的Tick事件就會(huì)執(zhí)行一次。任務(wù)2.3 編寫電子時(shí)鐘程序創(chuàng)建新的Windows應(yīng)用程序Windows應(yīng)用程序結(jié)構(gòu)編寫電子時(shí)鐘應(yīng)用程序運(yùn)行程序保存和打開“電子時(shí)鐘”程序運(yùn)行程序可以通過(guò)以下方式之一實(shí)現(xiàn):(1)單擊標(biāo)準(zhǔn)工具欄上的“啟動(dòng)調(diào)試”按鈕(2)選擇“調(diào)試”菜單中的“啟動(dòng)調(diào)試”命令(3)按下快捷鍵“F5”。任務(wù)2.3 編寫電子時(shí)鐘程序創(chuàng)建新的Window
37、s應(yīng)用程序Windows應(yīng)用程序結(jié)構(gòu)編寫電子時(shí)鐘應(yīng)用程序運(yùn)行程序保存和打開“電子時(shí)鐘”程序保存程序更改保存的文件名打開程序保存程序可以用以下方法之一實(shí)現(xiàn):(1)選擇“文件”菜單中的“全部保存”命令(2)單擊標(biāo)準(zhǔn)工具欄中的“全部保存”按鈕(3)運(yùn)行程序。VS 會(huì)在每一次運(yùn)行程序前,將項(xiàng)目自動(dòng)保存一次。保存程序時(shí),各個(gè)文件的名字和項(xiàng)目名稱一般都采用默認(rèn)值。窗體文件名的默認(rèn)值為FormX(X為數(shù)字)。如果想改變這個(gè)名字,可以按照下面的步驟操作:(1)單擊“解決方案資源管理器”中的Form1.cs文件。 (2)在“屬性”窗口中找到“文件名”屬性,并雙擊。(3)輸入新的文件名:Clock.cs。(4)保
38、存項(xiàng)目。打開項(xiàng)目可以采用下面的方法之一:(1)在“起始頁(yè)”中,單擊“打開項(xiàng)目”鏈接。在出現(xiàn)的“打開項(xiàng)目”對(duì)話框中,瀏覽項(xiàng)目所在的文件夾,選擇其中的解決方案文件(sln)文件或項(xiàng)目文件(csproj)文件,并確定。(2)選擇“文件”菜單中的“打開”菜單中的“項(xiàng)目”命令。在出現(xiàn)的“打開項(xiàng)目”對(duì)話框中,選擇相應(yīng)的解決方案文件或項(xiàng)目文件,并確定。(3)單擊工具欄中的“打開”按鈕。在出現(xiàn)的“打開項(xiàng)目”對(duì)話框中,在對(duì)話框中選擇相應(yīng)的解決方案文件或項(xiàng)目文件,并確定。(4)在Windows資源管理器中直接雙擊項(xiàng)目文件。任務(wù)2.4 學(xué)習(xí)窗體對(duì)象Windows窗體(Form)是一個(gè)矩形窗口,它可以改變尺寸、在屏幕
39、上移動(dòng)或在任務(wù)欄上最小化。每個(gè)應(yīng)用程序被執(zhí)行時(shí),一般都是從窗體開始的。在.NET Framework中,定義了一個(gè)名為Form的類,它實(shí)現(xiàn)了窗體最基本的屬性方法和事件。任務(wù)2.4 學(xué)習(xí)窗體對(duì)象窗體常用屬性窗體常用方法窗體常用事件Name屬性:窗體的名字,可以在代碼中通過(guò)名字找到窗體。Text屬性:標(biāo)題欄上顯示的文字。Size屬性:設(shè)置窗體的大小,包括高度和寬度。BackColor屬性:背景顏色AcceptButton和CancleButton屬性:指定默認(rèn)的確認(rèn)按鈕和取消按鈕。確認(rèn)按鈕在按回車鍵時(shí)執(zhí)行,不管鼠標(biāo)指針在哪個(gè)控件上。取消按鈕在按ESC時(shí)自動(dòng)啟動(dòng)。只有窗體上存在命令按鈕控件時(shí),這兩個(gè)
40、屬性才可以使用,一次最多只能設(shè)一個(gè)默認(rèn)按鈕。MinimizeBox屬性、MaximizeBox屬性:最大化、最小化按鈕是否會(huì)出現(xiàn)。MinimizeSize屬性、MaximizeSize屬性:窗體的最大值和最小值。 TopMost屬性:窗體是否是置頂窗體。StartPosition屬性Name屬性是每個(gè)窗體或控件都具有的屬性,用來(lái)描述控件的名稱。例如:將窗體的Name屬性設(shè)置為MyForm,那么在代碼中就可以通過(guò)MyForm找到窗體。Text屬性用來(lái)描述在窗體的標(biāo)題欄上顯示的文字。例如:將窗體的標(biāo)題欄文字設(shè)置為“我的C#程序”的代碼為:this.Text = 我的C#程序;Size屬性用來(lái)設(shè)置窗
41、體的大小。Size屬性值是Size結(jié)構(gòu),它提供對(duì)象的Width(寬)屬性和Height(高)屬性??梢栽趯傩源翱谥袉螕鬝ize屬性前面的+號(hào),展開Size屬性,分別設(shè)置Width和Height的屬性值。BackColor屬性用來(lái)描述窗體的背景顏色。AcceptButton屬性用于指定默認(rèn)的“確認(rèn)”按鈕, “確認(rèn)”按鈕在按回車鍵時(shí)執(zhí)行,不管此時(shí)焦點(diǎn)在哪個(gè)控件上。CancelButton屬性用于指定默認(rèn)的“取消”按鈕。“取消”按鈕在按Esc鍵時(shí)自動(dòng)執(zhí)行。只有窗體上存在命令按鈕(Button)控件時(shí),這兩個(gè)屬性才可用。一個(gè)窗體中,同時(shí)只能設(shè)置一個(gè)默認(rèn)按鈕。MinimizeBox屬性用于設(shè)置窗體上是否
42、會(huì)出現(xiàn)最小化按鈕。該屬性為True時(shí),窗體中有最小化按鈕,為False時(shí),沒(méi)有最小化按鈕。MaximizeBox屬性用于設(shè)置窗體上是否會(huì)出現(xiàn)最大化按鈕。該屬性為True時(shí),窗體中有最大化按鈕,為False時(shí),沒(méi)有最大化按鈕。MinimizeSize屬性用于設(shè)置窗體可以實(shí)現(xiàn)的最小尺寸,即窗體大小的最小值MaximizeBox屬性用于設(shè)置窗體可以實(shí)現(xiàn)的最大尺寸,即窗體大小的最大值例如,設(shè)置窗體為固定大小的代碼為:this.MaximumSize = this.Size;this.MinimumSize = this.Size;TopMost屬性用來(lái)決定窗體是否是一個(gè)置頂窗體。所謂置頂窗體,是指該窗
43、體會(huì)永遠(yuǎn)出現(xiàn)其它窗口的前面,不會(huì)被其它窗口覆蓋。該屬性為True時(shí),窗體是置頂窗體。默認(rèn)為False。StartPosition屬性用來(lái)設(shè)置窗體顯示時(shí)的起始位置。如該屬性設(shè)置為CenterScreen,則窗體則出現(xiàn)在屏幕的中心。任務(wù)2.4 學(xué)習(xí)窗體對(duì)象窗體常用屬性窗體常用方法窗體常用事件1.Focus( )方法 Focus()方法可以使窗體獲得焦點(diǎn)。 2. Show( )方法 Show()方法用于顯示窗體,使窗體可見(jiàn)。3. ShowDialog( )方法 ShowDialog()方法以模態(tài)對(duì)話框方式顯示窗體。任務(wù)2.4 學(xué)習(xí)窗體對(duì)象窗體常用屬性窗體常用方法窗體常用事件事件事件觸發(fā)時(shí)間Click
44、對(duì)象被鼠標(biāo)單擊時(shí)發(fā)生Doubleclick對(duì)象被鼠標(biāo)雙擊時(shí)發(fā)生GotFocus對(duì)象得到焦點(diǎn)時(shí)發(fā)生LostFocus對(duì)象失去焦點(diǎn)時(shí)發(fā)生MouseDown用戶在對(duì)象上按下鼠標(biāo)按鈕時(shí)發(fā)生MouseEnter鼠標(biāo)指針進(jìn)入對(duì)象時(shí)發(fā)生MouseHover鼠標(biāo)指針在對(duì)象上停留時(shí)發(fā)生MouseLeave鼠標(biāo)指針離開對(duì)象時(shí)發(fā)生MouseMove鼠標(biāo)指針在對(duì)象上移動(dòng)時(shí)發(fā)生MouseUp用戶在對(duì)象上釋放鼠標(biāo)按鈕時(shí)發(fā)生任務(wù)2.5 學(xué)習(xí)注釋注釋是為了方便閱讀而為代碼添加的簡(jiǎn)短的解釋性說(shuō)明。注釋不是語(yǔ)句,在編譯程序時(shí),編譯器會(huì)忽略注釋內(nèi)容,不會(huì)對(duì)其進(jìn)行編譯,更不會(huì)執(zhí)行注釋。在編程時(shí),我們應(yīng)養(yǎng)成書寫注釋的良好習(xí)慣。C#的注
45、釋符號(hào)有兩種:/* */(成對(duì)使用)和/。任務(wù)2.5 學(xué)習(xí)注釋通過(guò)選擇一行或多行代碼,然后在“編輯”工具欄上選擇“注釋”( ) 按鈕和“取消注釋”( ) 按鈕,可以添加或移除某段代碼的注釋符。這種方法在為連續(xù)的多行代碼加注釋時(shí)會(huì)更加方便。若在某個(gè)方法前連續(xù)輸入三個(gè)/(斜杠),Visual Studio 2010會(huì)自動(dòng)加入一個(gè)摘要(Summary),可以在摘要中加入以上功能注釋。摘要注釋任務(wù)2.6 學(xué)習(xí)MessageBox對(duì)象在.NET Framework中,使用MessageBox對(duì)象來(lái)實(shí)現(xiàn)消息對(duì)話框。MessageBox對(duì)象的共享方法Show()方法的語(yǔ)法為: MessageBox.Show
46、(消息,標(biāo)題,按鈕種類,圖標(biāo)種類);要顯示的提示信息消息對(duì)話框顯示的標(biāo)題信息消息對(duì)話框中按鈕的種類及個(gè)數(shù)消息對(duì)話框中顯示圖標(biāo)的類型652.6.1 消息框(MessageBox)消息框是Windows窗體應(yīng)用程序中經(jīng)常用于人機(jī)交互操作的對(duì)象之一,用來(lái)顯示簡(jiǎn)短的提示信息和幾個(gè)按鈕。顯示消息框之后,程序處于等待狀態(tài),用戶必須單擊消息框中的某個(gè)按鈕之后,程序才會(huì)繼續(xù)運(yùn)行。任務(wù)2.6 學(xué)習(xí)MessageBox對(duì)象MessageBox.Show(消息對(duì)話框);MessageBox.Show(消息對(duì)話框, 標(biāo)題);MessageBox.Show(消息對(duì)話框, 兩個(gè)按鈕, MessageBoxButtons.
47、OKCancel);MessageBox.Show(“消息對(duì)話框”, “三個(gè)按鈕”, MessageBoxButtons.AbortRetryIgnore);MessageBox.Show(消息對(duì)話框, 有圖標(biāo), MessageBoxButtons.OK, MessageBoxIcon.Error);執(zhí)行結(jié)果參加課本P23.67無(wú)返回值的消息框MessageBox.Show(text,title,buttons,icon);text 提示信息title 標(biāo)題欄上的提示信息buttons 按鈕的組合樣式icon 圖標(biāo)樣式68有返回值的消息框 DialogResult var = MessageB
48、ox.Show(text,Text, buttons,icon);69例2.6 顯示消息框中被選擇按鈕返回值private void button1_Click(object sender, EventArgs e) DialogResult result = MessageBox.Show(“是否保存已修改過(guò)的內(nèi) 容?, 保存文件, MessageBoxButtons.YesNoCancel); label1.Text = 您剛才選擇的按鈕是: + result; 70MessageBoxButtons集合的枚舉選項(xiàng) 71MessageBoxIcon集合的枚舉選項(xiàng) 72DialogResul
49、t的枚舉常量 使用實(shí)例MessageBox.Show()共有21中重載方法?,F(xiàn)將其常見(jiàn)用法總結(jié)如下:1.MessageBox.Show(Hello);最簡(jiǎn)單的,只顯示提示信息。 2.MessageBox.Show(There are something wrong!,ERROR);可以給消息框加上標(biāo)題。 3.if(MessageBox.Show(Delete this user?,Confirm Message,MessageBoxButtons.OKCancel) =DialogResult.OK)/delete詢問(wèn)是否刪除時(shí)會(huì)用到這個(gè)。 4.if(MessageBox.Show(Delet
50、e this user?,Confirm Message,MessageBoxButtons.OKCancel,MessageBoxIcon.Question) =DialogResult.OK)/delete可以給MessageBox加上一個(gè)Icon,.net提供常見(jiàn)的Icon供選擇。 5.if(MessageBox.Show(Delete this user?,Confirm Message,MessageBoxButtons.OKCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button2) =DialogResult.OK
51、)/delete可以改變MessageBox的默認(rèn)焦點(diǎn),如下: 6.if(MessageBox.Show(Delete this user?,Confirm Message,MessageBoxButtons.OKCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button2,MessageBoxOptions.RtlReading) =DialogResult.OK)/delete反向顯示: 7.if(MessageBox.Show(Delete this user?,Confirm Message,MessageBoxButto
52、ns.OKCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button2,MessageBoxOptions.RightAlign,true) =DialogResult.OK)/delete添加Help按鈕: 8.if(MessageBox.Show(Delete this user?,Confirm Message,MessageBoxButtons.OKCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button1,MessageBoxOptions.RtlRead
53、ing,/folder/file.htm) =DialogResult.OK)/delete指定幫助文件的路徑,點(diǎn)擊即可打開該路徑下的幫助文件。 9./HelpNavigator指定常數(shù)來(lái)指示要顯示的幫助文件元素。Find幫助文件將打開到搜索頁(yè)。if(MessageBox.Show(Delete this user?,Confirm Message,MessageBoxButtons.OKCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button1,MessageBoxOptions.RtlReading,/folder/file
54、.htm,HelpNavigator.Find) =DialogResult.OK)/delete MessageBox課堂練習(xí)課后p24:在電子時(shí)鐘程序中添加一個(gè)按鈕控件,其Text屬性為“關(guān)于”,單擊這個(gè)按鈕時(shí),使用MessageBox對(duì)象顯示信息“這是我的第一個(gè)應(yīng)用程序”任務(wù)2.7 學(xué)習(xí)DateTime類型DateTime結(jié)構(gòu),用于表示某個(gè)時(shí)刻,通常用來(lái)表示日期以及一天中的某個(gè)具體時(shí)間。通過(guò)使用DataTime的屬性、方法可以獲取時(shí)間中的任意部分和格式。 任務(wù)2.7 學(xué)習(xí)DateTime類型實(shí)例化 DateTime 對(duì)象DateTime date1 = new DateTime(2008
55、, 5, 1, 8, 30, 52);年份月份日小時(shí)分鐘秒此時(shí),date1變量代表的日期時(shí)間為:2008年5月1日8點(diǎn)30分52秒任務(wù)2.7 學(xué)習(xí)DateTime類型Now 屬性DataTime的Now屬性用于獲取計(jì)算機(jī)上的當(dāng)前日期和時(shí)間,表示為本地時(shí)間。例如: DateTime date1 = DateTime.Now;此時(shí),date1變量代表的日期時(shí)間為:當(dāng)前日期和時(shí)間任務(wù)2.7 學(xué)習(xí)DateTime類型DateTime 的值本身無(wú)法以文本的形式顯示,使用ToString()方法可以將日期和時(shí)間以字符串的形式顯示出來(lái)。例如: lblClock.Text = DateTime.Now.ToS
56、tring();此時(shí),lblClock標(biāo)簽控件中的文字為:當(dāng)前日期和時(shí)間的字符串形式也可以使用Parse()using System;public class switchTestpublic static void Main()int num;Console.WriteLine(“請(qǐng)輸入一個(gè)1-7之間的數(shù)字:”);string input = Console.ReadLine();num = int.Parse(input);/同理也有l(wèi)ong.parse(),datetime.parse()等等 switch (num)case 1: Console.WriteLine(Monday);b
57、reak;case 2: Console.WriteLine(Tuesday);break;case 3: Console.WriteLine(Wednesday);break;case 4: Console.WriteLine(Thursday);break;case 5: Console.WriteLine(Friday);break;case 6: Console.WriteLine(Saturday);break;case 7: Console.WriteLine(Sunday);break;default: Console.WriteLine(輸入的數(shù)字不正確!);break;Clock源程序using System;using System.Collections.Generic;using System.Linq;using System.Windows.Forms;namespace Clock static class Program / / 應(yīng)用程序入口點(diǎn) /
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年黑龍江省五常市輔警招聘考試試題題庫(kù)含答案詳解(奪分金卷)
- 2025年河北省定州市輔警招聘考試試題題庫(kù)含答案詳解(預(yù)熱題)
- 2025年O2O零售行業(yè)商業(yè)模式創(chuàng)新研究報(bào)告
- 2024年演出經(jīng)紀(jì)人之演出經(jīng)紀(jì)實(shí)務(wù)考試題庫(kù)附答案
- 全鏈條齒輪質(zhì)量管理
- 《報(bào)關(guān)實(shí)務(wù)與操作》鐘飛燕課后習(xí)題答案
- 消防燃燒試題及答案
- 西藏政治試題及答案
- 2025屆重慶市西南大學(xué)附屬中學(xué)高三下學(xué)期階段檢測(cè)十英語(yǔ)試題(解析版)
- 化學(xué)●全國(guó)甲卷丨2023年普通高等學(xué)校招生全國(guó)統(tǒng)一考試化學(xué)試卷及答案
- 環(huán)杭州灣地區(qū)發(fā)展戰(zhàn)略規(guī)劃研究
- 擬投入本項(xiàng)目的主要施工設(shè)備表
- 湖北省環(huán)境監(jiān)測(cè)專業(yè)服務(wù)暫時(shí)行收費(fèi)重點(diǎn)標(biāo)準(zhǔn)
- 純堿MSDS報(bào)告化學(xué)品安全技術(shù)說(shuō)明書
- 機(jī)械原理課程設(shè)計(jì)-織機(jī)開口機(jī)構(gòu)設(shè)計(jì)說(shuō)明書
- 我國(guó)服飾文化及地理環(huán)境關(guān)系研究報(bào)告
- 魚類學(xué)-鯔形目ppt課件教學(xué)教程
- 高三物理一輪復(fù)習(xí)教學(xué)案追擊和相遇問(wèn)題
- Triz矛盾矩陣 48行48列
- (完整版)PICC維護(hù)操作流程及評(píng)分標(biāo)準(zhǔn)
- 統(tǒng)編人教部編版八年級(jí)下冊(cè)語(yǔ)文第六單元測(cè)試卷(含答案)
評(píng)論
0/150
提交評(píng)論