版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 第第3章章 Visual C#程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)本章知識點本章知識點pC#C#語言基礎(chǔ)語言基礎(chǔ)p數(shù)據(jù)類型數(shù)據(jù)類型p常量和變量常量和變量p運算符和表達式運算符和表達式p流程控制語句流程控制語句p類和對象類和對象3.1 C#語言基礎(chǔ)語言基礎(chǔ)p C#C#語言的基本特點語言的基本特點p .NET Framework.NET Framework和和C#C#p 使用使用Visual Studio 2005Visual Studio 2005p 編寫一個簡單的編寫一個簡單的C#C#例子例子3.1.1 C#語言的基本特點語言的基本特點p C#C#的英文發(fā)音為的英文發(fā)音為C SharpC Sharp,它
2、是一種最新的、面向?qū)ο?,它是一種最新的、面向?qū)ο蟮某绦蛟O(shè)計語言,程序員可以使用它方便、快速地編的程序設(shè)計語言,程序員可以使用它方便、快速地編寫各種基于寫各種基于Microsoft .NETMicrosoft .NET平臺的應(yīng)用程序。平臺的應(yīng)用程序。p .NET.NET將將InternetInternet本身作為構(gòu)建新一代操作系統(tǒng)的基礎(chǔ)本身作為構(gòu)建新一代操作系統(tǒng)的基礎(chǔ),并對,并對InternetInternet和操作系統(tǒng)的設(shè)計思想進行了延伸,和操作系統(tǒng)的設(shè)計思想進行了延伸,使開發(fā)人員能夠創(chuàng)建出與設(shè)備無關(guān)的應(yīng)用程序,更容使開發(fā)人員能夠創(chuàng)建出與設(shè)備無關(guān)的應(yīng)用程序,更容易地實現(xiàn)易地實現(xiàn)Internet
3、Internet連接。連接。p 可以使用可以使用Visual StudioVisual Studio開發(fā)開發(fā)C#C#應(yīng)用程序。應(yīng)用程序。 C#語言具有如下主要特點語言具有如下主要特點1 1語法簡潔語法簡潔2 2更完善的面向?qū)ο蟪绦蛟O(shè)計機制更完善的面向?qū)ο蟪绦蛟O(shè)計機制3 3與與WebWeb應(yīng)用的緊密應(yīng)用的緊密3.1.2 .NET Framework和和C#C#語言的編譯和運行過程語言的編譯和運行過程(1 1)在)在Visual StudioVisual Studio中創(chuàng)建中創(chuàng)建Visual C#Visual C#項目,其中包括項目,其中包括C#C#源文件、資源和引用等。源文件、資源和引用等。C#
4、C#源文件的擴展名為源文件的擴展名為.cs.cs,可以定義類、接口、窗體等;資源可以是圖像、圖標(biāo)可以定義類、接口、窗體等;資源可以是圖像、圖標(biāo)、文本文件或字符串等;引用是、文本文件或字符串等;引用是MicrosoftMicrosoft公司或第公司或第3 3方提供的組件,通常為方提供的組件,通常為.dll.dll、.ocx.ocx和和.tlb.tlb等類型。等類型。(2 2)使用)使用C#C#編譯器對編譯器對Visual C#Visual C#項目進行編譯,得到項目進行編譯,得到MicrosoftMicrosoft中間語言(中間語言(MSILMSIL),這是一組可以有效地轉(zhuǎn)),這是一組可以有效地
5、轉(zhuǎn)換為本機代碼且獨立于換為本機代碼且獨立于CPUCPU的指令。的指令。(3 3)Visual C#Visual C#程序運行在程序運行在.NET Framework.NET Framework平臺上,由公平臺上,由公共語言運行庫提供支持,同時使用共語言運行庫提供支持,同時使用.NET Framework.NET Framework提提供的類庫,將供的類庫,將MicrosoftMicrosoft中間語言轉(zhuǎn)換為本地計算機代中間語言轉(zhuǎn)換為本地計算機代碼,最終在操作系統(tǒng)上運行。碼,最終在操作系統(tǒng)上運行。3.1.3 使用使用Visual Studio 2005p在在“開始開始”菜單中依次選擇菜單中依次選
6、擇“程序程序”/ /“Microsoft Visual Studio Microsoft Visual Studio 20052005”/ /“Microsoft Visual Studio 2005Microsoft Visual Studio 2005”,啟動,啟動Microsoft Visual Studio Microsoft Visual Studio 20052005窗口。窗口。新建項目新建項目p 在最近打開的項目列表下面,提供了打開和創(chuàng)建網(wǎng)站的超級鏈接在最近打開的項目列表下面,提供了打開和創(chuàng)建網(wǎng)站的超級鏈接。單擊。單擊“創(chuàng)建創(chuàng)建”標(biāo)簽后面的標(biāo)簽后面的“項目項目”超級鏈接,打開超級
7、鏈接,打開“新建項目新建項目”對話框。對話框。 控制臺應(yīng)用程序項目控制臺應(yīng)用程序項目Visual Studio窗口窗口1 1窗體設(shè)計及代碼編輯器窗體設(shè)計及代碼編輯器2 2解決方案資源管理器解決方案資源管理器3 3屬性窗口屬性窗口3.1.4 編寫一個簡單的編寫一個簡單的C#例子例子 參照參照11.1.311.1.3小節(jié)介紹的方法創(chuàng)建一個控制臺應(yīng)用程序項目,項目小節(jié)介紹的方法創(chuàng)建一個控制臺應(yīng)用程序項目,項目名稱為名稱為HelloWorldHelloWorld。項目的主文件為。項目的主文件為Program.csProgram.cs。1Program.cs的默認代碼的默認代碼usingSystem;u
8、singSystem.Collections.Generic;usingSystem.Text;namespaceHelloWorldclassProgramstaticvoidMain(stringargs)2在在Main()函數(shù)中添加代碼函數(shù)中添加代碼staticvoidMain(stringargs)Console.WriteLine(HelloWorld!);Console.ReadKey();3運行程序運行程序p 在菜單中選擇在菜單中選擇“調(diào)試調(diào)試”/ /“啟動調(diào)試啟動調(diào)試”,或在工具欄,或在工具欄中單擊中單擊“啟動調(diào)試啟動調(diào)試”按鈕按鈕 可以運行當(dāng)前的項目??梢赃\行當(dāng)前的項目。4在
9、程序中添加注釋在程序中添加注釋(1 1)注釋符)注釋符/(2 2)注釋符)注釋符/ /* * */ /(3 3)XMLXML文檔注釋標(biāo)記文檔注釋標(biāo)記(1)注釋符)注釋符/文件名:文件名:Program.cs/描述:主程序文件描述:主程序文件/作者:啟明星作者:啟明星/日期:日期:2009-2-18inta=0;/聲明一個整型變量聲明一個整型變量a,初始值為,初始值為0(2)注釋符)注釋符/*/*文件名:文件名:Program.cs描述:主程序文件描述:主程序文件作者:啟明星作者:啟明星日期:日期:2009-2-18*/inta=0;/*聲明一個整型變量聲明一個整型變量a,初始值為,初始值為0*
10、/intb/*變量變量b*/=0;(3)XML文檔注釋標(biāo)記文檔注釋標(biāo)記/classProgram/主函數(shù)主函數(shù)/命令行參數(shù)命令行參數(shù)staticvoidMain(stringargs)Console.WriteLine(HelloWorld!);/ab/cConsole.ReadKey();3.2 數(shù)據(jù)類型數(shù)據(jù)類型p值類型值類型p引用類型引用類型p類型轉(zhuǎn)換類型轉(zhuǎn)換3.2.1 值類型值類型1 1簡單類型簡單類型2 2結(jié)構(gòu)類型結(jié)構(gòu)類型3 3枚舉類型枚舉類型1簡單類型簡單類型簡單類型分類C#數(shù)據(jù)類型.NET Framework系統(tǒng)類型具體說明整數(shù)類型byteSystem.Byte無符號8位整數(shù),取值
11、范圍為0255sbyteSystem.SByte有符號8位整數(shù),取值范圍為-128127ushortSystem.UInt16無符號16位整數(shù),取值范圍為065,535shortSystem.Int16有符號16 位整數(shù),取值范圍為-32,76832,767uintSystem.UInt32無 符 號 3 2 位 整 數(shù) , 取 值 范 圍 為 0 4,294,967,295intSystem.Int32有 符 號 3 2 位 整 數(shù) , 取 值 范 圍 為 -2,147,483,6482,147,483,647ulongSystem.UInt64無 符 號 6 4 位 整 數(shù) , 取 值 范
12、 圍 為 0 18,446,744,073,709,551,615longSystem.Int64有 符 號 6 4 位 整 數(shù) , 取 值 范 圍 為 -9,223,372,036,854,775,8089,223,372,036,854,775,807實數(shù)類型floatSystem.Single32位浮點數(shù)據(jù)類型,也稱為單精度數(shù)據(jù)類型,取值范圍為1.5 10453.4 1038doubleSystem.Double64位浮點數(shù)據(jù)類型,也稱為雙精度數(shù)據(jù)類型,取值范圍為5.0 103241.7 10308decimalSystem.Decimal128位數(shù)據(jù)類型,主要用于金融或貨幣方面的計算和
13、處理,取值范圍大致為1.0102 8 7.91028布爾類型boolSystem.Boolean布爾類型的變量只能存儲布爾值true(真)和false(假)字符類型charSystem.Char16位Unicode字符類型【例例3.1】pbytebyte數(shù)據(jù)類型的取值范圍是數(shù)據(jù)類型的取值范圍是02550255,下面程序?qū)Ⅱ炞C變量越界的情況。,下面程序?qū)Ⅱ炞C變量越界的情況。staticvoidMain(stringargs)bytea=255;Console.WriteLine(a);a+;Console.WriteLine(a);Console.ReadKey();p程序的運行結(jié)果如下:程序的
14、運行結(jié)果如下:2550轉(zhuǎn)義字符轉(zhuǎn)義字符轉(zhuǎn)義字符含義a警報(響鈴)b退格符tTAB符r回車符v垂直TAB符f換頁符n換行符eESC符反斜杠()2結(jié)構(gòu)類型結(jié)構(gòu)類型structEmployeepublicstringEmpName;/姓名姓名publicstringSex;/性別性別publicintWage;/工資工資publicstringIDCard;/身份證號身份證號使用結(jié)構(gòu)體使用結(jié)構(gòu)體p 可以通過下面的語句聲明一個可以通過下面的語句聲明一個EmployeeEmployee結(jié)構(gòu)類型的變量結(jié)構(gòu)類型的變量empemp。Employeeemp;p 可以通過可以通過“emp.emp. ”方式來訪問結(jié)
15、構(gòu)體內(nèi)的變量。方式來訪問結(jié)構(gòu)體內(nèi)的變量。例如,使用下面的語句可以為結(jié)構(gòu)類型變量例如,使用下面的語句可以為結(jié)構(gòu)類型變量empemp設(shè)置具體的值。設(shè)置具體的值。emp.EmpName=小強小強;emp.Sex=男男;emp.Wage=3000;emp.IDCard=1101234567890 xx;【例例3.2】p在在EmployeeEmployee結(jié)構(gòu)類型中增加一個結(jié)構(gòu)類型中增加一個PhonePhone結(jié)構(gòu)類型,用于定義員工的電話信息。結(jié)構(gòu)類型,用于定義員工的電話信息。PhonePhone結(jié)構(gòu)類型包含結(jié)構(gòu)類型包含3 3個成員個成員變量,即住宅電話變量,即住宅電話HomePhoneHomePhon
16、e、辦公電話、辦公電話OfficePhoneOfficePhone和移動電話和移動電話MobilePhoneMobilePhone,定義代碼如下:,定義代碼如下:structEmployeepublicstringEmpName;/姓名姓名publicstringSex;/性別性別publicintWage;/工資工資publicstringIDCard;/身份證號身份證號publicstructPhonepublicstringHomePhone;/住宅電話住宅電話publicstringOfficePhone;/辦公電話辦公電話publicstringMobilePhone;/移動電話移動
17、電話publicPhonephone;/定義電話變量定義電話變量p可以使用下面的語句來設(shè)置可以使用下面的語句來設(shè)置empemp變量的住宅電話。變量的住宅電話。emp.phone.HomePhone=66668888;3枚舉類型枚舉類型p 枚舉類型就是能夠枚舉出所有取值的類型。例如,一枚舉類型就是能夠枚舉出所有取值的類型。例如,一周有周有7 7天,可以定義一個枚舉類型天,可以定義一個枚舉類型DaysDays,表示周,表示周1 1至周至周日,代碼如下:日,代碼如下:enumDaysSun,Mon,Tue,Wed,Thu,Fri,Sat使用枚舉類型使用枚舉類型p也可以手動指定枚舉元素的值。例如,下面
18、的代碼中指定枚舉元素也可以手動指定枚舉元素的值。例如,下面的代碼中指定枚舉元素SunSun的值為的值為1 1。enumDaysSun=1,Mon,Tue,Wed,Thu,Fri,Satp可以使用下面的方法來聲明枚舉類型的元素??梢允褂孟旅娴姆椒▉砺暶髅杜e類型的元素。Daysweekdayp可以使用可以使用“ . ”的方式來引用枚舉類型的元素。例的方式來引用枚舉類型的元素。例如,將變量如,將變量weekdayweekday賦值為周日,代碼如下:賦值為周日,代碼如下:weekday=Days.Sun; 3.2.2 引用類型引用類型p 引用類型與值類型的最大區(qū)別在于,引用類型變量不直接存儲所引用類型
19、與值類型的最大區(qū)別在于,引用類型變量不直接存儲所包含的值,而是指向它所要存儲的值。也就是說,引用類型變量包含的值,而是指向它所要存儲的值。也就是說,引用類型變量保存的是數(shù)據(jù)引用值的地址,這一點類似于保存的是數(shù)據(jù)引用值的地址,這一點類似于C C語言中的指針。語言中的指針。p C#C#語言中包含的引用類型包括類(語言中包含的引用類型包括類(classclass)、數(shù)組()、數(shù)組(arrayarray)、接)、接口(口(interfaceinterface)和委托()和委托(delegatedelegate)等。)等。1類類p 類是面向?qū)ο蟪绦蛟O(shè)計的基本單位,它既可以描述對象的屬性,類是面向?qū)ο蟪绦?/p>
20、設(shè)計的基本單位,它既可以描述對象的屬性,又可以定義對象的操作。又可以定義對象的操作。p 關(guān)于關(guān)于C#C#語言中定義和使用類的方法,將在語言中定義和使用類的方法,將在11.611.6小節(jié)詳細介紹。這小節(jié)詳細介紹。這里只介紹一個簡單的定義類的實例。里只介紹一個簡單的定義類的實例。【例例3.3】p聲明類聲明類EmployeeEmployee,用于定義員工的信息和操作,代碼如下:,用于定義員工的信息和操作,代碼如下:classEmployeepublicstringEmpName;/姓名姓名publicstringSex;/性別性別publicintWage;/工資工資publicstringIDCa
21、rd;/身份證號身份證號/輸出員工信息輸出員工信息/publicvoidPrintEmpInfo()Console.WriteLine(EmpName);Console.WriteLine(Sex);Console.WriteLine(Wage);Console.WriteLine(IDCard);2數(shù)組數(shù)組p 數(shù)組是包含若干相同數(shù)據(jù)類型變量的數(shù)據(jù)結(jié)構(gòu),它對應(yīng)一段連續(xù)的數(shù)組是包含若干相同數(shù)據(jù)類型變量的數(shù)據(jù)結(jié)構(gòu),它對應(yīng)一段連續(xù)的內(nèi)存空間。在定義數(shù)組時,需要指定數(shù)組名、數(shù)組元素的數(shù)據(jù)類型內(nèi)存空間。在定義數(shù)組時,需要指定數(shù)組名、數(shù)組元素的數(shù)據(jù)類型和數(shù)組的維數(shù)等信息。和數(shù)組的維數(shù)等信息。p 數(shù)組可以是
22、一維的,也可以是多維的。聲明一維數(shù)組的語法如下:數(shù)組可以是一維的,也可以是多維的。聲明一維數(shù)組的語法如下:=newp 關(guān)鍵字關(guān)鍵字newnew用于創(chuàng)建新的對象。例如,定義一個整型一維數(shù)組用于創(chuàng)建新的對象。例如,定義一個整型一維數(shù)組arrarr,它包含它包含5 5個數(shù)組元素,代碼如下:個數(shù)組元素,代碼如下:intarr=newint5;使用數(shù)組使用數(shù)組p在聲明數(shù)組對象時,可以直接對其進行初始化,例如:在聲明數(shù)組對象時,可以直接對其進行初始化,例如:intarr=newint51,2,3,4,5;p使用下面的語句可以設(shè)置和返回數(shù)組元素的值。使用下面的語句可以設(shè)置和返回數(shù)組元素的值。arr0=2;i
23、nta=arr2;p在在C#C#語言中可以聲明多維數(shù)組。例如,下面的語句聲明了一個語言中可以聲明多維數(shù)組。例如,下面的語句聲明了一個5 5行行2 2列的二維整型列的二維整型數(shù)組。數(shù)組。int,array=newint5,2;p多維數(shù)組的使用方法與一維數(shù)組類似,也可以在聲明數(shù)組時定義其初始值。例如多維數(shù)組的使用方法與一維數(shù)組類似,也可以在聲明數(shù)組時定義其初始值。例如:int,array=newint,1,2,2,2,3,3,4,2,5,3;3接口接口【例例11.411.4】在繪制圖形時,都可以指定繪圖使用的顏色(在繪制圖形時,都可以指定繪圖使用的顏色(ColorColor屬性),也需要包含屬性)
24、,也需要包含一個繪制動作(一個繪制動作(DrawDraw方法)。因此,可以定義一個接口方法)。因此,可以定義一個接口ISharpISharp,包含所有繪圖類,包含所有繪圖類所包含的所包含的ColorColor屬性和屬性和DrawDraw方法,代碼如下:方法,代碼如下:ppublicinterfaceISharppp/p/繪制圖形的顏色繪制圖形的顏色p/pSystem.Drawing.ColorColorget;set;p/p/繪制圖形繪制圖形p/pvoidDraw();pp4委托委托p 委托(委托(delegatedelegate)相當(dāng)于)相當(dāng)于C+C+中的函數(shù)指針,但是委托是類型安全中的函數(shù)
25、指針,但是委托是類型安全和可靠的,它避免了和可靠的,它避免了C+C+中由于沒有釋放指針而導(dǎo)致的資源泄露現(xiàn)中由于沒有釋放指針而導(dǎo)致的資源泄露現(xiàn)象,也不會因為指針指向不正確的地址而產(chǎn)生異常。象,也不會因為指針指向不正確的地址而產(chǎn)生異常。p 可以使用關(guān)鍵字可以使用關(guān)鍵字delegatedelegate來定義委托。例如,定義一個指向來定義委托。例如,定義一個指向voidvoid類型函數(shù)的委托,代碼如下:類型函數(shù)的委托,代碼如下:delegatevoidMyDelegate();p 委托本身沒有意義,在沒有指向具體的方法前也不能被獨立執(zhí)行委托本身沒有意義,在沒有指向具體的方法前也不能被獨立執(zhí)行。需要首先
26、定義一個方法,然后將委托指向該方法,才能通過委。需要首先定義一個方法,然后將委托指向該方法,才能通過委托調(diào)用方法。托調(diào)用方法?!纠?.5】classProgram/定義委托定義委托MyDelegatedelegatevoidMyDelegate();/主函數(shù)主函數(shù)staticvoidMain(stringargs)/將委托對象將委托對象d指向指向PrintHello()方法方法MyDelegated=newMyDelegate(PrintHello);/相當(dāng)于執(zhí)行相當(dāng)于執(zhí)行PrintHello()方法方法d();/將委托對象將委托對象d指向指向PrintABC()方法方法d=newMyDel
27、egate(PrintABC);/相當(dāng)于執(zhí)行者相當(dāng)于執(zhí)行者PrintABC()方法方法d();/等待用戶按任意鍵退出等待用戶按任意鍵退出Console.ReadKey();【例例3.5】/打印打印HelloWorld的方法的方法publicstaticvoidPrintHello()Console.WriteLine(HelloWorld);/打印打印ABC的方法的方法publicstaticvoidPrintABC()Console.WriteLine(ABC);5內(nèi)置引用類型內(nèi)置引用類型(1 1)objectobject類型類型(2 2)stringstring類型類型(1)object類
28、型類型p 可以將值類型賦給可以將值類型賦給objectobject類型的變量,此過程被稱為類型的變量,此過程被稱為“裝箱裝箱”。例如,下面的代碼將整型變量例如,下面的代碼將整型變量i i的值賦到的值賦到objectobject變量中。變量中。inti=10;objectobj=i;p 裝箱的反向操作為裝箱的反向操作為“取消裝箱取消裝箱”,即將,即將objectobject變量中的值賦到一變量中的值賦到一個值類型變量中。例如,下面的代碼將個值類型變量中。例如,下面的代碼將objectobject變量變量i i的值賦到的值賦到floatfloat變量中。變量中。intj=(int)obj;(2)s
29、tring類型類型p stringstring類型變量的聲明方式如下:類型變量的聲明方式如下:string=;例如例如,下面的語句中定義了一個下面的語句中定義了一個stringstring類型變量類型變量strstr,其,其初始值為初始值為hellohello。stringstr=hello;3.2.3 類型轉(zhuǎn)換類型轉(zhuǎn)換1 1隱式轉(zhuǎn)換隱式轉(zhuǎn)換隱式類型轉(zhuǎn)換是系統(tǒng)默認的轉(zhuǎn)換方式,可以直接通過賦值的方式實現(xiàn)隱式類型轉(zhuǎn)換。隱式類型轉(zhuǎn)換是系統(tǒng)默認的轉(zhuǎn)換方式,可以直接通過賦值的方式實現(xiàn)隱式類型轉(zhuǎn)換。例如:例如:inta=10;longb=a;在上面的代碼中,在上面的代碼中,intint類型變量類型變量a
30、a的初始值為的初始值為1010,將其賦值給,將其賦值給longlong類型變量類型變量b b,則,則b b的值的值也等于也等于1010。2 2顯式轉(zhuǎn)換顯式轉(zhuǎn)換顯式類型轉(zhuǎn)換也稱為強制類型轉(zhuǎn)換,它需要在進行類型轉(zhuǎn)換時明確指定要轉(zhuǎn)換的類型顯式類型轉(zhuǎn)換也稱為強制類型轉(zhuǎn)換,它需要在進行類型轉(zhuǎn)換時明確指定要轉(zhuǎn)換的類型。例如:。例如:inta=10;longb=(int)a;3.3 常量和變量常量和變量p常量常量p變量變量3.3.1 常量常量p 在在C#C#語言中,可以使用語言中,可以使用constconst關(guān)鍵字來聲明常量,語法如下:關(guān)鍵字來聲明常量,語法如下:const=;1 1publicpublic
31、訪問修飾符訪問修飾符2 2privateprivate訪問修飾符訪問修飾符3 3protectedprotected訪問修飾符訪問修飾符4 4internalinternal訪問修飾符訪問修飾符publicconstfloatPI=3.1415926;3.3.2 變量變量p 在在C#C#語言中,聲明聲明變量的語法如下:語言中,聲明聲明變量的語法如下:;p 在前面的內(nèi)容中已經(jīng)介紹了一些聲明變量的實例,例如聲明在前面的內(nèi)容中已經(jīng)介紹了一些聲明變量的實例,例如聲明intint類型的變類型的變量量i i,代碼如下:,代碼如下:inti;p 在聲明變量的同時,可以設(shè)置變量的初始值。例如,聲明在聲明變量的
32、同時,可以設(shè)置變量的初始值。例如,聲明intint類型變量類型變量a a,其初始值為其初始值為1010,代碼如下:,代碼如下:inta=10;C#變量的命名規(guī)則變量的命名規(guī)則p 變量名必須以字母或下劃線等特定符號開頭。變量名必須以字母或下劃線等特定符號開頭。p 變量名只能由字母、數(shù)字和下劃線組成,不能包含空格、標(biāo)點符號、運變量名只能由字母、數(shù)字和下劃線組成,不能包含空格、標(biāo)點符號、運算符等。算符等。p 變量名不能與變量名不能與C#C#的庫函數(shù)名相同。的庫函數(shù)名相同。p 變量名不能與變量名不能與C#C#的關(guān)鍵字相同。的關(guān)鍵字相同。例如,下面聲明的變量是合法的。例如,下面聲明的變量是合法的。int
33、a=10;int_a=1;stringstr;floatf;3.4 運算符和表達式運算符和表達式p 算術(shù)運算符和算術(shù)表達式算術(shù)運算符和算術(shù)表達式p 邏輯運算符和邏輯表達式邏輯運算符和邏輯表達式p 遞增遞減運算符和遞增遞減表達式遞增遞減運算符和遞增遞減表達式p 關(guān)系運算符和關(guān)系表達式關(guān)系運算符和關(guān)系表達式p 賦值運算符和賦值表達式賦值運算符和賦值表達式3.4.1 算術(shù)運算符和算術(shù)表達式算術(shù)運算符和算術(shù)表達式【例例3.6】p下面代碼演示算術(shù)表達式的計算方法。下面代碼演示算術(shù)表達式的計算方法。staticvoidMain(stringargs)inti=10,j=30,k=50;/優(yōu)先計算優(yōu)先計算j
34、*kintnum=i+j*k;Console.WriteLine(10+30*50=0,num);/優(yōu)先計算括號里面的內(nèi)容優(yōu)先計算括號里面的內(nèi)容num=(i+j)*k;Console.WriteLine(10+30)*50=0,num);/按任意鍵退出按任意鍵退出Console.ReadKey();p運行結(jié)果如下:運行結(jié)果如下:10+30*50=1510;(10+30)*50=2000;3.4.2 邏輯運算符和邏輯表達式邏輯運算符和邏輯表達式3.4.3 遞增遞減運算符和遞增遞減運算符和遞增遞減表達式遞增遞減表達式p 遞增運算符為遞增運算符為+,用于將操作數(shù)增加,用于將操作數(shù)增加1 1。遞增運算
35、符可。遞增運算符可以出現(xiàn)在操作數(shù)的前面,也可以出現(xiàn)在操作數(shù)的后面以出現(xiàn)在操作數(shù)的前面,也可以出現(xiàn)在操作數(shù)的后面。p 當(dāng)遞增運算符出現(xiàn)在操作數(shù)前面時,程序?qū)⑹紫葘⒉佼?dāng)遞增運算符出現(xiàn)在操作數(shù)前面時,程序?qū)⑹紫葘⒉僮鲾?shù)增加作數(shù)增加1 1,然后再將增加,然后再將增加1 1后的結(jié)果作為表達式的返后的結(jié)果作為表達式的返回值。回值?!纠?.7】p下面代碼演示遞增運算符出現(xiàn)在操作數(shù)前面時的情況。下面代碼演示遞增運算符出現(xiàn)在操作數(shù)前面時的情況。inti=10;intj=+i;Console.WriteLine(i=+i.ToString();Console.WriteLine(j=+j.ToString();
36、p運行結(jié)果如下:運行結(jié)果如下:i=11;j=11;【例例3.8】p 下面代碼演示遞增運算符出現(xiàn)在操作數(shù)后面時的情況下面代碼演示遞增運算符出現(xiàn)在操作數(shù)后面時的情況。inti=10;intj=i+;Console.WriteLine(i=+i.ToString();Console.WriteLine(j=+j.ToString();p 運行結(jié)果如下:運行結(jié)果如下:i=11;j=10;3.4.4 關(guān)系運算符和關(guān)系表達式關(guān)系運算符和關(guān)系表達式【例例3.9】p 面代碼演示關(guān)系表達式和邏輯表達式結(jié)合使用的計算結(jié)果。面代碼演示關(guān)系表達式和邏輯表達式結(jié)合使用的計算結(jié)果。inti=50;Console.Writ
37、eLine(i30&i60);Console.ReadKey();3.4.5 賦值運算符和賦值表達式賦值運算符和賦值表達式【例例3.10】p下面代碼演示了各種賦值表達式的計算方法。下面代碼演示了各種賦值表達式的計算方法。staticvoidMain(stringargs)inti=10,j=3;Console.WriteLine(i=10;j=3);/=運算符運算符intnum=i+j;Console.WriteLine(i+j=0,num);/+=運算符運算符num=i;num+=j;Console.WriteLine(i+j=0,num);【例例3.10】/-=運算符運算符num=i;nu
38、m-=j;Console.WriteLine(i-j=0,num);/*=運算符運算符num=i;num*=j;Console.WriteLine(i*j=0,num);/=運算符運算符num=i;num/=j;Console.WriteLine(i/j=0,num);/=運算符運算符num=i;num%=j;Console.WriteLine(i%j=0,num);Console.ReadKey();【例例3.10】p運行結(jié)果如下:運行結(jié)果如下:i=10;j=3i+j=13i+j=13i-j=7i*j=30i/j=3i%j=13.5 流程控制語句流程控制語句p 選擇控制語句選擇控制語句p 循
39、環(huán)控制語句循環(huán)控制語句p 跳轉(zhuǎn)控制語句跳轉(zhuǎn)控制語句p 異常處理語句異常處理語句3.5.1 選擇控制語句選擇控制語句(1 1)ifif語句語句(2 2)switchswitch語句語句(1)if語句語句pifif語句的語法如下:語句的語法如下:if()else【例例3.11】p 下面代碼演示了下面代碼演示了ifif語句的使用方法。語句的使用方法。staticvoidMain(stringargs)Console.WriteLine(請輸入你的姓名:請輸入你的姓名:);stringstr=Console.ReadLine();if(str.Length0)Console.WriteLine(您的姓
40、名是:您的姓名是:0,str);elseConsole.WriteLine(沒有輸入沒有輸入);Console.ReadKey();else if語句語句if()elseif()else【例例3.12】p下面代碼演示了使用下面代碼演示了使用ifif語句實現(xiàn)多分支控制的方法。語句實現(xiàn)多分支控制的方法。ppstaticvoidMain(stringargs)ppDateTimenow=DateTime.Now;pif(now.DayOfWeek=DayOfWeek.Monday)pConsole.WriteLine(星期一星期一);pelseif(now.DayOfWeek=DayOfWeek.T
41、uesday)pConsole.WriteLine(星期二星期二);pelseif(now.DayOfWeek=DayOfWeek.Wednesday)pConsole.WriteLine(星期三星期三);pelseif(now.DayOfWeek=DayOfWeek.Thursday)pConsole.WriteLine(星期四星期四);pelseif(now.DayOfWeek=DayOfWeek.Friday)pConsole.WriteLine(星期五星期五);pelseif(now.DayOfWeek=DayOfWeek.Saturday)pConsole.WriteLine(星期六
42、星期六);pelsepConsole.WriteLine(星期日星期日);p枚舉類型枚舉類型DayOfWeek的值的值(2)switch語句語句pswitchswitch語句是一個多分支控制語句,語法如下:語句是一個多分支控制語句,語法如下:switch()case:break;case:break;default:break;【例例3.13】p使用使用switchswitch語句輸出當(dāng)前日期是星期幾,代碼如下:語句輸出當(dāng)前日期是星期幾,代碼如下:staticvoidMain(stringargs)DateTimenow=DateTime.Now;switch(now.DayOfWeek)ca
43、seDayOfWeek.Monday:Console.WriteLine(星期一星期一);break;caseDayOfWeek.Tuesday:Console.WriteLine(星期二星期二);break;caseDayOfWeek.Wednesday:Console.WriteLine(星期三星期三);break;【例例3.13】caseDayOfWeek.Thursday:Console.WriteLine(星期四星期四);break;caseDayOfWeek.Friday:Console.WriteLine(星期五星期五);break;caseDayOfWeek.Saturday:
44、Console.WriteLine(星期六星期六);break;default:Console.WriteLine(星期日星期日);break;【例例3.14】p使用使用switchswitch語句判斷當(dāng)前日期是工作日還是周末,代碼如下:語句判斷當(dāng)前日期是工作日還是周末,代碼如下:staticvoidMain(stringargs)DateTimenow=DateTime.Now;switch(now.DayOfWeek)caseDayOfWeek.Monday:caseDayOfWeek.Tuesday:caseDayOfWeek.Wednesday:caseDayOfWeek.Thursd
45、ay:caseDayOfWeek.Friday:Console.WriteLine(工作日工作日);break;default:Console.WriteLine(周末周末);break;3.5.2 循環(huán)控制語句循環(huán)控制語句(1 1)dowhiledowhile語句語句(2 2)whilewhile語句語句(3 3)forfor語句語句(4 4)foreachforeach語句語句(1)dowhile語句語句p dowhiledowhile語句的語法如下:語句的語法如下:dowhile()【例例3.15】p使用使用dowhiledowhile語句計算語句計算1+2+3+91+2+3+9的結(jié)果,
46、代碼如下:的結(jié)果,代碼如下:staticvoidMain(stringargs)inti=1;intsum=0;dosum+=i+;while(i11);Console.WriteLine(sum.ToString();Console.ReadKey();p運行結(jié)果為運行結(jié)果為5555。(2)while語句語句pwhilewhile語句的語法如下:語句的語法如下:while()【例例3.16】p使用使用while語句計算語句計算1+2+3+9的結(jié)果,代碼如下:的結(jié)果,代碼如下:staticvoidMain(stringargs)intn=1;intsum=0;while(true)sum+=n
47、+;if(n10)break;Console.WriteLine(sum.ToString();Console.ReadKey();(3)for語句語句pforfor語句的語法如下:語句的語法如下:for(;)p在在forfor語句中,需要定義一個循環(huán)控制變量,用來控制循環(huán)語句的執(zhí)行。例如:語句中,需要定義一個循環(huán)控制變量,用來控制循環(huán)語句的執(zhí)行。例如:for(inti=0;i10;i+)Console.WriteLine(i.ToString();【例例3.17】p 使用使用forfor語句輸出數(shù)組語句輸出數(shù)組arrarr所有元素的值,代碼如下:所有元素的值,代碼如下:staticvoidM
48、ain(stringargs)intarr=newint51,2,3,4,5;for(inti=0;iarr.Length;i+)Console.WriteLine(arr0=1,i,arri);Console.ReadKey();【例例3.17】p輸出結(jié)果如下:輸出結(jié)果如下:arr0=1arr1=2arr2=3arr3=4arr4=5(4)foreach語句語句p foreachforeach語句可以在循環(huán)語句塊中依次處理數(shù)組或?qū)ο笳Z句可以在循環(huán)語句塊中依次處理數(shù)組或?qū)ο蠹现械拿總€元素,語法如下:集合中的每個元素,語法如下:for(in)【例例3.18】p 使用使用foreachforea
49、ch語句輸出數(shù)組語句輸出數(shù)組arrarr所有元素的值,代碼如下:所有元素的值,代碼如下:staticvoidMain(stringargs)intarr=newint51,2,3,4,5;foreach(intelementinarr)Console.WriteLine(element);Console.ReadKey();【例例3.18】p輸出結(jié)果如下:輸出結(jié)果如下:123453.5.3 跳轉(zhuǎn)控制語句跳轉(zhuǎn)控制語句(1 1)breakbreak語句語句(2 2)continuecontinue語句語句(1)break語句語句pbreakbreak語句用于退出當(dāng)前的循環(huán)體或語句用于退出當(dāng)前的循環(huán)
50、體或switchswitch語句。在介紹語句。在介紹switchswitch語句時已經(jīng)語句時已經(jīng)演示了演示了breakbreak語句的使用,下面介紹在循語句的使用,下面介紹在循環(huán)控制語句中使用環(huán)控制語句中使用breakbreak語句的方法。語句的方法。【例例3.19】p在數(shù)組在數(shù)組arrarr中查找等于中查找等于1010的元素,找到后退出循環(huán),并輸出該元素在數(shù)組中的序號,代碼如下的元素,找到后退出循環(huán),并輸出該元素在數(shù)組中的序號,代碼如下:staticvoidMain(stringargs)intarr=newint51,21,10,43,25;intindex=-1;for(inti=0;i
51、=0)Console.WriteLine(等于等于10的數(shù)組索引為的數(shù)組索引為0,index);elseConsole.WriteLine(沒有找到等于沒有找到等于10的數(shù)組元素。的數(shù)組元素。);Console.ReadKey();(2)continue語句語句pcontinuecontinue語句用于將程序的控制權(quán)轉(zhuǎn)向語句用于將程序的控制權(quán)轉(zhuǎn)向循環(huán)語句的下一次循環(huán)操作。循環(huán)語句的下一次循環(huán)操作?!纠?1.20】p 遍歷數(shù)組遍歷數(shù)組arrarr中的元素,輸出其中的偶數(shù),代碼如下:中的元素,輸出其中的偶數(shù),代碼如下:staticvoidMain(stringargs)intarr=newint
52、51,21,10,44,25;intindex=-1;for(inti=0;iarr.Length;i+)if(arri%2=1)continue;Console.WriteLine(arri);Console.ReadKey();3.5.4 異常處理語句異常處理語句p C#C#的異常處理語句的異常處理語句trycatchtrycatch,語法如下:,語法如下:trycatch()【例例3.21】p 下面的實例演示當(dāng)發(fā)生除下面的實例演示當(dāng)發(fā)生除0 0錯誤時不進行異常處理的情況。錯誤時不進行異常處理的情況。staticvoidMain(stringargs)inti=10;intresult=3
53、0/(i-10);Console.WriteLine(result);未處理異常未處理異常【例例3.22】p下面的實例演示當(dāng)發(fā)生除下面的實例演示當(dāng)發(fā)生除0 0錯誤時進行異常處理的情況。錯誤時進行異常處理的情況。staticvoidMain(stringargs)tryinti=10;intresult=30/(i-10);Console.WriteLine(result);catch(Exceptionex)Console.WriteLine(ex.Message);Console.ReadKey();【例例3.23】p下面的實例演示下面的實例演示trycatchfinallytrycatch
54、finally語句的使用情況。語句的使用情況。staticvoidMain(stringargs)inti=0;tryi=10;intresult=30/(i-10);Console.WriteLine(result);catch(Exceptionex)Console.WriteLine(ex.Message);finallyi=0;Console.Write(i);Console.ReadKey();3.6 類和對象類和對象p面向?qū)ο蟪绦蛟O(shè)計思想面向?qū)ο蟪绦蛟O(shè)計思想p創(chuàng)建類創(chuàng)建類p構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)p方法方法3.6.1 面向?qū)ο蟪绦蛟O(shè)計思想面向?qū)ο蟪绦蛟O(shè)計思想面向?qū)ο蟪绦?/p>
55、設(shè)計具有如下特性面向?qū)ο蟪绦蛟O(shè)計具有如下特性p對象唯一性對象唯一性p抽象性抽象性p繼承性繼承性p多態(tài)性多態(tài)性3.6.2 創(chuàng)建類創(chuàng)建類p 在在Visual StudioVisual Studio的菜單中依次選擇的菜單中依次選擇“項目項目”/ /“添加類添加類”,打開,打開“添加新項添加新項”對話框。對話框。使用使用class關(guān)鍵字可以定義一個類關(guān)鍵字可以定義一個類class員工類員工類Employee的實例的實例publicclassEmployeepublicstringEmpName;/姓名姓名publicstringSex;/性別性別publicintWage;/工資工資publicstr
56、ingIDCard;/身份證號身份證號/輸出員工信息輸出員工信息/publicvoidPrintEmpInfo()Console.WriteLine(EmpName);Console.WriteLine(Sex);Console.WriteLine(Wage);Console.WriteLine(IDCard);【例例3.24】p 下面的實例演示了如何訪問對象屬性和和方法。下面的實例演示了如何訪問對象屬性和和方法。staticvoidMain(stringargs)Employeeobj=newEmployee();obj.EmpName=小明小明;obj.Sex=男男;obj.Wage=25
57、00;obj.IDCard=1234567890abcd;obj.PrintEmpInfo();Console.ReadKey();【例例3.25】p修改類修改類EmployeeEmployee的定義,將字段設(shè)置為的定義,將字段設(shè)置為privateprivate類型,并使用公共屬性來獲取和設(shè)類型,并使用公共屬性來獲取和設(shè)置字段的值,代碼如下:置字段的值,代碼如下:classEmployeeprivatestringempName;/姓名姓名privatestringsex;/性別性別privateintwage;/工資工資privatestringidCard;/身份證號身份證號/empNam
58、e字段對應(yīng)的屬性字段對應(yīng)的屬性/publicstringEmpNamegetreturnempName;setempName=value;【例例3.25】/sex字段對應(yīng)的屬性字段對應(yīng)的屬性/publicstringSexgetreturnsex;setsex=value;【例例3.25】/wage字段對應(yīng)的屬性字段對應(yīng)的屬性/publicintWagegetif(wage0)returnwage;elsereturn0;setif(value0)wage=value;elsewage=0;【例例3.25】/idCard字段對應(yīng)的屬性字段對應(yīng)的屬性/publicstringIDCardgetr
59、eturnidCard;setidCard=value;/訪問私有字段,輸出員工信息訪問私有字段,輸出員工信息/publicvoidPrintEmpInfo()Console.WriteLine(empName);Console.WriteLine(sex);Console.WriteLine(wage);Console.WriteLine(idCard);3.6.3 構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)1 1構(gòu)造函數(shù)構(gòu)造函數(shù)p 構(gòu)造函數(shù)在創(chuàng)建對象時自動執(zhí)行,用于初始對象的初始化。每個構(gòu)造函數(shù)在創(chuàng)建對象時自動執(zhí)行,用于初始對象的初始化。每個類都有構(gòu)造函數(shù),它的函數(shù)名與類名相同。類都有構(gòu)造函數(shù),它的函數(shù)名與類名相同。p 例如,在類例如,在類EmployeeEmployee中定義構(gòu)造函數(shù),代碼如下:中定義構(gòu)造函數(shù),代碼如下:publicEmployee()empName=;sex=;wage=0;idCard=;構(gòu)造函數(shù)構(gòu)造函數(shù)p在構(gòu)造函數(shù)中還可以使用參數(shù)。通常使用參數(shù)設(shè)置字段的初始值,代碼如下:在構(gòu)造函數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版?zhèn)€人車輛抵押債權(quán)債務(wù)處理執(zhí)行協(xié)議3篇
- 2025年度個人新能源汽車充電站場地承包協(xié)議2篇
- 2025版新能源汽車電池委托加工合同范本3篇
- 2025-2030全球眼科手術(shù)剪行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國公共交流充電站行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國碳納米管微球行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球汽車燃油回流管路行業(yè)調(diào)研及趨勢分析報告
- 二樓商業(yè)租賃專項協(xié)議(2024版)版
- 二零二五年度車輛牌照租賃市場拓展與合作開發(fā)合同4篇
- 二零二五年度車牌租賃與廣告合作協(xié)議3篇
- 二零二五年度無人駕駛車輛測試合同免責(zé)協(xié)議書
- 2025年湖北華中科技大學(xué)招聘實驗技術(shù)人員52名歷年高頻重點提升(共500題)附帶答案詳解
- 黑龍江省哈爾濱市2024屆中考數(shù)學(xué)試卷(含答案)
- 高三日語一輪復(fù)習(xí)助詞「と」的用法課件
- 毛渣采購合同范例
- 無子女離婚協(xié)議書范文百度網(wǎng)盤
- 2023中華護理學(xué)會團體標(biāo)準(zhǔn)-注射相關(guān)感染預(yù)防與控制
- 一年級數(shù)學(xué)個位數(shù)加減法口算練習(xí)題大全(連加法-連減法-連加減法直接打印版)
- 五年級上冊小數(shù)遞等式計算200道及答案
- 2024年廣東高考政治真題考點分布匯 總- 高考政治一輪復(fù)習(xí)
- 冀教版五年級下冊數(shù)學(xué)全冊教學(xué)課件
評論
0/150
提交評論