版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第11章 Visual C#程序設計基礎課程描述ASP.NET是Microsoft公司推出的新一代基于B/S結構的動態(tài)Web應用程序開發(fā)工具,它雖然繼承了ASP的特色,但在語法結構和應用程序開發(fā)模式上卻有很大的區(qū)別。ASP.NET支持VB.NET和Visual C#等語言,其中Visual C#的應用更為廣泛,是ASP.NET應用程序的最佳語言。本書實例選擇Visual C#作為開發(fā)ASP.NET應用程序的語言。本章首先介紹Visual C#程序設計的基本技術,為讀者理解后面的實例奠定基礎。第11章 Visual C#程序設計基礎課程描述本章知識點C#語言基礎數(shù)據(jù)類型常量和變量運算符和表達式流
2、程控制語句類和對象本章知識點C#語言基礎11.1 C#語言基礎C#語言的基本特點.NET Framework和C#使用Visual Studio 2005編寫一個簡單的C#例子11.1 C#語言基礎C#語言的基本特點11.1.1 C#語言的基本特點C#的英文發(fā)音為C Sharp,它是一種最新的、面向對象的程序設計語言,程序員可以使用它方便、快速地編寫各種基于Microsoft .NET平臺的應用程序。.NET將Internet本身作為構建新一代操作系統(tǒng)的基礎,并對Internet和操作系統(tǒng)的設計思想進行了延伸,使開發(fā)人員能夠創(chuàng)建出與設備無關的應用程序,更容易地實現(xiàn)Internet連接??梢允褂?/p>
3、Visual Studio開發(fā)C#應用程序。 11.1.1 C#語言的基本特點C#的英文發(fā)音為C ShaC#語言具有如下主要特點1語法簡潔2更完善的面向對象程序設計機制3與Web應用的緊密C#語言具有如下主要特點1語法簡潔11.1.2 .NET Framework和C#11.1.2 .NET Framework和C#C#語言的編譯和運行過程(1)在Visual Studio中創(chuàng)建Visual C#項目,其中包括C#源文件、資源和引用等。C#源文件的擴展名為.cs,可以定義類、接口、窗體等;資源可以是圖像、圖標、文本文件或字符串等;引用是Microsoft公司或第3方提供的組件,通常為.dll、
4、.ocx和.tlb等類型。(2)使用C#編譯器對Visual C#項目進行編譯,得到Microsoft中間語言(MSIL),這是一組可以有效地轉換為本機代碼且獨立于CPU的指令。(3)Visual C#程序運行在.NET Framework平臺上,由公共語言運行庫提供支持,同時使用.NET Framework提供的類庫,將Microsoft中間語言轉換為本地計算機代碼,最終在操作系統(tǒng)上運行。C#語言的編譯和運行過程(1)在Visual Studio中11.1.3 使用Visual Studio 2005在“開始”菜單中依次選擇“程序”/“Microsoft Visual Studio 2005
5、”/“Microsoft Visual Studio 2005”,啟動Microsoft Visual Studio 2005窗口。11.1.3 使用Visual Studio 2005在“新建項目在最近打開的項目列表下面,提供了打開和創(chuàng)建網站的超級鏈接。單擊“創(chuàng)建”標簽后面的“項目”超級鏈接,打開“新建項目”對話框。 新建項目在最近打開的項目列表下面,提供了打開和創(chuàng)建網站的超級控制臺應用程序項目控制臺應用程序項目Visual Studio窗口1窗體設計及代碼編輯器2解決方案資源管理器3屬性窗口Visual Studio窗口1窗體設計及代碼編輯器11.1.4 編寫一個簡單的C#例子 參照11.
6、1.3小節(jié)介紹的方法創(chuàng)建一個控制臺應用程序項目,項目名稱為HelloWorld。項目的主文件為Program.cs。11.1.4 編寫一個簡單的C#例子 參照11.1.31Program.cs的默認代碼using System;using System.Collections.Generic;using System.Text;namespace HelloWorld class Program static void Main(string args) 1Program.cs的默認代碼using System;2在Main()函數(shù)中添加代碼static void Main(string ar
7、gs) Console.WriteLine(Hello World!); Console.ReadKey();2在Main()函數(shù)中添加代碼static void Ma3運行程序在菜單中選擇“調試”/“啟動調試”,或在工具欄中單擊“啟動調試”按鈕 可以運行當前的項目。3運行程序在菜單中選擇“調試”/“啟動調試”,或在工具欄中4在程序中添加注釋(1)注釋符/(2)注釋符/*/(3)XML文檔注釋標記4在程序中添加注釋(1)注釋符/(1)注釋符/ 文件名:Program.cs/ 描述:主程序文件/ 作者:啟明星/ 日期:2009-2-18 int a = 0; / 聲明一個整型變量a,初始值為0(
8、1)注釋符/ 文件名:Program.cs(2)注釋符/*/* 文件名:Program.cs描述:主程序文件作者:啟明星日期:2009-2-18 */ int a = 0; /* 聲明一個整型變量a,初始值為0 */ int b /*變量b*/ = 0;(2)注釋符/*/* 文件名:Program.cs(3)XML文檔注釋標記/ / / class Program/ / 主函數(shù)/ / 命令行參數(shù)static void Main(string args) Console.WriteLine(Hello World!); / ab /c Console.ReadKey();(3)XML文檔注釋標記
9、/ 11.2 數(shù)據(jù)類型值類型引用類型類型轉換11.2 數(shù)據(jù)類型值類型11.2.1 值類型1簡單類型2結構類型3枚舉類型11.2.1 值類型1簡單類型1簡單類型簡單類型分類C#數(shù)據(jù)類型.NET Framework系統(tǒng)類型具體說明整數(shù)類型byteSystem.Byte無符號8位整數(shù),取值范圍為0255sbyteSystem.SByte有符號8位整數(shù),取值范圍為-128127ushortSystem.UInt16無符號16位整數(shù),取值范圍為065,535shortSystem.Int16有符號16 位整數(shù),取值范圍為-32,76832,767uintSystem.UInt32無符號32位整數(shù),取值范
10、圍為0 4,294,967,295intSystem.Int32有符號32位整數(shù),取值范圍為-2,147,483,6482,147,483,647ulongSystem.UInt64無符號64位整數(shù),取值范圍為0 18,446,744,073,709,551,615longSystem.Int64有符號64位整數(shù),取值范圍為-9,223,372,036,854,775,8089,223,372,036,854,775,807實數(shù)類型floatSystem.Single32位浮點數(shù)據(jù)類型,也稱為單精度數(shù)據(jù)類型,取值范圍為1.510453.41038doubleSystem.Double64位浮點
11、數(shù)據(jù)類型,也稱為雙精度數(shù)據(jù)類型,取值范圍為5.0103241.710308decimalSystem.Decimal128位數(shù)據(jù)類型,主要用于金融或貨幣方面的計算和處理,取值范圍大致為1.01028 7.91028布爾類型boolSystem.Boolean布爾類型的變量只能存儲布爾值true(真)和false(假)字符類型charSystem.Char16位Unicode字符類型1簡單類型簡單類型分類C#數(shù)據(jù)類型.NET Framewo【例11.1】byte數(shù)據(jù)類型的取值范圍是0255,下面程序將驗證變量越界的情況。static void Main(string args) byte a =
12、 255; Console.WriteLine(a); a+; Console.WriteLine(a); Console.ReadKey();程序的運行結果如下:2550【例11.1】byte數(shù)據(jù)類型的取值范圍是0255,下面程轉義字符轉義字符含義a警報(響鈴)b退格符tTAB符r回車符v垂直TAB符f換頁符n換行符eESC符反斜杠()轉義字符轉義字符含義a警報(響鈴)b退格符tTAB符2結構類型struct Employee public string EmpName; / 姓名 public string Sex; / 性別 public int Wage; / 工資 public st
13、ring IDCard; / 身份證號2結構類型struct Employee使用結構體可以通過下面的語句聲明一個Employee結構類型的變量emp。Employee emp;可以通過“emp.”方式來訪問結構體內的變量。例如,使用下面的語句可以為結構類型變量emp設置具體的值。emp.EmpName = 小強;emp.Sex = 男;emp.Wage = 3000;emp.IDCard = 1101234567890 xx;使用結構體可以通過下面的語句聲明一個Employee結構類型【例11.2】在Employee結構類型中增加一個Phone結構類型,用于定義員工的電話信息。Phone結構
14、類型包含3個成員變量,即住宅電話HomePhone、辦公電話OfficePhone和移動電話MobilePhone,定義代碼如下:struct Employee public string EmpName; / 姓名 public string Sex; / 性別 public int Wage; / 工資 public string IDCard; / 身份證號 public struct Phone public string HomePhone; / 住宅電話 public string OfficePhone; / 辦公電話 public string MobilePhone; / 移
15、動電話 public Phone phone; / 定義電話變量可以使用下面的語句來設置emp變量的住宅電話。emp.phone.HomePhone = 66668888;【例11.2】在Employee結構類型中增加一個Phone3枚舉類型枚舉類型就是能夠枚舉出所有取值的類型。例如,一周有7天,可以定義一個枚舉類型Days,表示周1至周日,代碼如下:enum Days Sun, Mon, Tue, Wed, Thu, Fri, Sat3枚舉類型枚舉類型就是能夠枚舉出所有取值的類型。例如,一周使用枚舉類型也可以手動指定枚舉元素的值。例如,下面的代碼中指定枚舉元素Sun的值為1。enum Day
16、s Sun = 1, Mon, Tue, Wed, Thu, Fri, Sat可以使用下面的方法來聲明枚舉類型的元素。Days weekday可以使用“.”的方式來引用枚舉類型的元素。例如,將變量weekday賦值為周日,代碼如下:weekday = Days.Sun; 使用枚舉類型也可以手動指定枚舉元素的值。例如,下面的代碼中指11.2.2 引用類型引用類型與值類型的最大區(qū)別在于,引用類型變量不直接存儲所包含的值,而是指向它所要存儲的值。也就是說,引用類型變量保存的是數(shù)據(jù)引用值的地址,這一點類似于C語言中的指針。C#語言中包含的引用類型包括類(class)、數(shù)組(array)、接口(inte
17、rface)和委托(delegate)等。11.2.2 引用類型引用類型與值類型的最大區(qū)別在于,引用1類類是面向對象程序設計的基本單位,它既可以描述對象的屬性,又可以定義對象的操作。關于C#語言中定義和使用類的方法,將在11.6小節(jié)詳細介紹。這里只介紹一個簡單的定義類的實例。1類類是面向對象程序設計的基本單位,它既可以描述對象的屬性【例11.3】聲明類Employee,用于定義員工的信息和操作,代碼如下:class Employee public string EmpName; / 姓名 public string Sex; / 性別 public int Wage; / 工資 public
18、string IDCard; / 身份證號 / / 輸出員工信息 / public void PrintEmpInfo() Console.WriteLine(EmpName); Console.WriteLine(Sex); Console.WriteLine(Wage); Console.WriteLine(IDCard); 【例11.3】聲明類Employee,用于定義員工的信息和操2數(shù)組數(shù)組是包含若干相同數(shù)據(jù)類型變量的數(shù)據(jù)結構,它對應一段連續(xù)的內存空間。在定義數(shù)組時,需要指定數(shù)組名、數(shù)組元素的數(shù)據(jù)類型和數(shù)組的維數(shù)等信息。數(shù)組可以是一維的,也可以是多維的。聲明一維數(shù)組的語法如下: = n
19、ew 關鍵字new用于創(chuàng)建新的對象。例如,定義一個整型一維數(shù)組arr,它包含5個數(shù)組元素,代碼如下:int arr = new int5;2數(shù)組數(shù)組是包含若干相同數(shù)據(jù)類型變量的數(shù)據(jù)結構,它對應一段使用數(shù)組在聲明數(shù)組對象時,可以直接對其進行初始化,例如:int arr = new int5 1, 2, 3, 4, 5;使用下面的語句可以設置和返回數(shù)組元素的值。arr0 = 2;int a = arr2;在C#語言中可以聲明多維數(shù)組。例如,下面的語句聲明了一個5行2列的二維整型數(shù)組。int, array = new int5, 2;多維數(shù)組的使用方法與一維數(shù)組類似,也可以在聲明數(shù)組時定義其初始值。
20、例如:int, array = new int, 1, 2 , 2, 2 , 3, 3 , 4, 2 , 5, 3 ;使用數(shù)組在聲明數(shù)組對象時,可以直接對其進行初始化,例如:3接口【例11.4】在繪制圖形時,都可以指定繪圖使用的顏色(Color屬性),也需要包含一個繪制動作(Draw方法)。因此,可以定義一個接口ISharp,包含所有繪圖類所包含的Color屬性和Draw方法,代碼如下:public interface ISharp / / 繪制圖形的顏色 / System.Drawing.Color Color get; set; / / 繪制圖形 / void Draw();3接口【例11
21、.4】在繪制圖形時,都可以指定繪圖使用的顏色4委托委托(delegate)相當于C+中的函數(shù)指針,但是委托是類型安全和可靠的,它避免了C+中由于沒有釋放指針而導致的資源泄露現(xiàn)象,也不會因為指針指向不正確的地址而產生異常??梢允褂藐P鍵字delegate來定義委托。例如,定義一個指向void類型函數(shù)的委托,代碼如下:delegate void MyDelegate();委托本身沒有意義,在沒有指向具體的方法前也不能被獨立執(zhí)行。需要首先定義一個方法,然后將委托指向該方法,才能通過委托調用方法。4委托委托(delegate)相當于C+中的函數(shù)指針,但【例11.5】class Program / 定義委
22、托MyDelegate delegate void MyDelegate(); / 主函數(shù) static void Main(string args) / 將委托對象d指向PrintHello()方法 MyDelegate d = new MyDelegate(PrintHello); / 相當于執(zhí)行PrintHello()方法 d(); / 將委托對象d指向PrintABC()方法 d = new MyDelegate(PrintABC); / 相當于執(zhí)行者PrintABC()方法 d(); / 等待用戶按任意鍵退出 Console.ReadKey(); 【例11.5】class Progr
23、am【例11.5】 / 打印Hello World的方法 public static void PrintHello() Console.WriteLine(Hello World); / 打印ABC的方法 public static void PrintABC() Console.WriteLine(ABC); 【例11.5】 / 打印Hello World的方法5內置引用類型(1)object類型(2)string類型5內置引用類型(1)object類型(1)object類型可以將值類型賦給object類型的變量,此過程被稱為“裝箱”。例如,下面的代碼將整型變量i的值賦到object變量中
24、。int i = 10;object obj = i;裝箱的反向操作為“取消裝箱”,即將object變量中的值賦到一個值類型變量中。例如,下面的代碼將object變量i的值賦到float變量中。int j = (int)obj;(1)object類型可以將值類型賦給object類型的變量(2)string類型string類型變量的聲明方式如下:string = ;例如,下面的語句中定義了一個string類型變量str,其初始值為hello。string str = hello;(2)string類型string類型變量的聲明方式如下:11.2.3 類型轉換1隱式轉換隱式類型轉換是系統(tǒng)默認的轉換
25、方式,可以直接通過賦值的方式實現(xiàn)隱式類型轉換。例如:int a = 10;long b = a;在上面的代碼中,int類型變量a的初始值為10,將其賦值給long類型變量b,則b的值也等于10。2顯式轉換顯式類型轉換也稱為強制類型轉換,它需要在進行類型轉換時明確指定要轉換的類型。例如:int a = 10;long b = (int)a;11.2.3 類型轉換1隱式轉換11.3 常量和變量常量變量11.3 常量和變量常量11.3.1 常量在C#語言中,可以使用const關鍵字來聲明常量,語法如下: const = ;1public訪問修飾符2private訪問修飾符3protected訪問修飾
26、符4internal訪問修飾符public const float PI = 3.1415926;11.3.1 常量在C#語言中,可以使用const關鍵字來11.3.2 變量在C#語言中,聲明聲明變量的語法如下: ;在前面的內容中已經介紹了一些聲明變量的實例,例如聲明int類型的變量i,代碼如下:int i;在聲明變量的同時,可以設置變量的初始值。例如,聲明int類型變量a,其初始值為10,代碼如下:int a = 10;11.3.2 變量在C#語言中,聲明聲明變量的語法如下:C#變量的命名規(guī)則變量名必須以字母或下劃線等特定符號開頭。變量名只能由字母、數(shù)字和下劃線組成,不能包含空格、標點符號、
27、運算符等。變量名不能與C#的庫函數(shù)名相同。變量名不能與C#的關鍵字相同。例如,下面聲明的變量是合法的。int a = 10;int _a = 1;string str;float f;C#變量的命名規(guī)則變量名必須以字母或下劃線等特定符號開頭。11.4 運算符和表達式算術運算符和算術表達式邏輯運算符和邏輯表達式遞增遞減運算符和遞增遞減表達式關系運算符和關系表達式賦值運算符和賦值表達式11.4 運算符和表達式算術運算符和算術表達式11.4.1 算術運算符和算術表達式11.4.1 算術運算符和算術表達式【例11.6】下面代碼演示算術表達式的計算方法。static void Main(string a
28、rgs) int i = 10, j = 30, k = 50; / 優(yōu)先計算j*k int num = i + j * k; Console.WriteLine(10+30*50 = 0 , num); / 優(yōu)先計算括號里面的內容 num = (i + j) * k; Console.WriteLine(10+30)*50 = 0, num); / 按任意鍵退出 Console.ReadKey();運行結果如下:10+30*50 = 1510;(10+30)*50 = 2000;【例11.6】下面代碼演示算術表達式的計算方法。11.4.2 邏輯運算符和邏輯表達式11.4.2 邏輯運算符和邏輯
29、表達式11.4.3 遞增遞減運算符和遞增遞減表達式遞增運算符為+,用于將操作數(shù)增加1。遞增運算符可以出現(xiàn)在操作數(shù)的前面,也可以出現(xiàn)在操作數(shù)的后面。當遞增運算符出現(xiàn)在操作數(shù)前面時,程序將首先將操作數(shù)增加1,然后再將增加1后的結果作為表達式的返回值。11.4.3 遞增遞減運算符和遞增遞減表達式遞增運算符為【例11.7】下面代碼演示遞增運算符出現(xiàn)在操作數(shù)前面時的情況。int i = 10;int j = +i;Console.WriteLine(i= + i.ToString();Console.WriteLine(j= + j.ToString();運行結果如下:i=11;j=11;【例11.7】
30、下面代碼演示遞增運算符出現(xiàn)在操作數(shù)前面時的情況【例11.8】下面代碼演示遞增運算符出現(xiàn)在操作數(shù)后面時的情況。int i = 10;int j = i+;Console.WriteLine(i= + i.ToString();Console.WriteLine(j= + j.ToString();運行結果如下:i=11;j=10;【例11.8】下面代碼演示遞增運算符出現(xiàn)在操作數(shù)后面時的情況11.4.4 關系運算符和關系表達式11.4.4 關系運算符和關系表達式【例11.9】面代碼演示關系表達式和邏輯表達式結合使用的計算結果。int i = 50;Console.WriteLine(i30 & i
31、60);Console.ReadKey();【例11.9】面代碼演示關系表達式和邏輯表達式結合使用的計算11.4.5 賦值運算符和賦值表達式11.4.5 賦值運算符和賦值表達式【例11.10】下面代碼演示了各種賦值表達式的計算方法。static void Main(string args) int i = 10, j = 3; Console.WriteLine(i=10; j=3); / = 運算符 int num = i + j; Console.WriteLine(i+j=0, num); / += 運算符 num = i; num += j; Console.WriteLine(i+j
32、=0, num);【例11.10】下面代碼演示了各種賦值表達式的計算方法。【例11.10】 / -= 運算符 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); / = 運算符 num = i; num %= j; Console.WriteLine(i%j=0, num); Console.ReadKey();【
33、例11.10】 / -= 運算符【例11.10】運行結果如下:i=10; j=3i+j=13i+j=13i-j=7i*j=30i/j=3i%j=1【例11.10】運行結果如下:11.5 流程控制語句選擇控制語句循環(huán)控制語句跳轉控制語句異常處理語句11.5 流程控制語句選擇控制語句11.5.1 選擇控制語句(1)if語句(2)switch語句11.5.1 選擇控制語句(1)if語句(1)if語句if語句的語法如下:if() else (1)if語句if語句的語法如下:【例11.10】下面代碼演示了if語句的使用方法。static void Main(string args) Console.Wr
34、iteLine(請輸入你的姓名:); string str = Console.ReadLine(); if (str.Length 0) Console.WriteLine(您的姓名是:0, str); else Console.WriteLine(沒有輸入); Console.ReadKey();【例11.10】下面代碼演示了if語句的使用方法。else if語句if() else if() else else if語句if()【例11.11】下面代碼演示了使用if語句實現(xiàn)多分支控制的方法。static void Main(string args) DateTime now = DateT
35、ime.Now; if (now.DayOfWeek = DayOfWeek.Monday) Console.WriteLine(星期一); else if (now.DayOfWeek = DayOfWeek.Tuesday) Console.WriteLine(星期二); else if (now.DayOfWeek = DayOfWeek.Wednesday) Console.WriteLine(星期三); else if (now.DayOfWeek = DayOfWeek.Thursday) Console.WriteLine(星期四); else if (now.DayOfWeek
36、 = DayOfWeek.Friday) Console.WriteLine(星期五); else if (now.DayOfWeek = DayOfWeek.Saturday) Console.WriteLine(星期六); else Console.WriteLine(星期日);【例11.11】下面代碼演示了使用if語句實現(xiàn)多分支控制的方枚舉類型DayOfWeek的值枚舉類型DayOfWeek的值(2)switch語句switch語句是一個多分支控制語句,語法如下:switch() case : break; case : break; default: break;(2)switch語句
37、switch語句是一個多分支控制語句,【例11.12】使用switch語句輸出當前日期是星期幾,代碼如下:static void Main(string args) DateTime now = DateTime.Now; switch (now.DayOfWeek) case DayOfWeek.Monday: Console.WriteLine(星期一); break; case DayOfWeek.Tuesday: Console.WriteLine(星期二); break; case DayOfWeek.Wednesday: Console.WriteLine(星期三); break;
38、【例11.12】使用switch語句輸出當前日期是星期幾,代【例11.12】 case DayOfWeek.Thursday: Console.WriteLine(星期四); break; case DayOfWeek.Friday: Console.WriteLine(星期五); break; case DayOfWeek.Saturday: Console.WriteLine(星期六); break; default: Console.WriteLine(星期日); break; 【例11.12】 case DayOfWeek.Thursd【例11.13】使用switch語句判斷當前日期是
39、工作日還是周末,代碼如下:static void Main(string args) DateTime now = DateTime.Now; switch (now.DayOfWeek) case DayOfWeek.Monday: case DayOfWeek.Tuesday: case DayOfWeek.Wednesday: case DayOfWeek.Thursday: case DayOfWeek.Friday: Console.WriteLine(工作日); break; default: Console.WriteLine(周末); break; 【例11.13】使用swit
40、ch語句判斷當前日期是工作日還是11.5.2 循環(huán)控制語句(1)dowhile語句(2)while語句(3)for語句(4)foreach語句11.5.2 循環(huán)控制語句(1)dowhile語句(1)dowhile語句dowhile語句的語法如下:do while()(1)dowhile語句dowhile語句的語法如下:【例11.14】使用dowhile語句計算1+2+3+9的結果,代碼如下:static void Main(string args) int i = 1; int sum = 0; do sum += i+; while (i 11); Console.WriteLine(sum
41、.ToString(); Console.ReadKey();運行結果為55。【例11.14】使用dowhile語句計算1+2+3+(2)while語句while語句的語法如下:while() (2)while語句while語句的語法如下:【例11.15】使用while語句計算1+2+3+9的結果,代碼如下:static void Main(string args) int n = 1; int sum = 0; while (true) sum += n+; if (n 10) break; Console.WriteLine(sum.ToString(); Console.ReadKey(
42、);【例11.15】使用while語句計算1+2+3+9的結(3)for語句for語句的語法如下:for(; ; ) 在for語句中,需要定義一個循環(huán)控制變量,用來控制循環(huán)語句的執(zhí)行。例如:for(int i=0; i10; i+) Console.WriteLine(i.ToString();(3)for語句for語句的語法如下:【例11.16】使用for語句輸出數(shù)組arr所有元素的值,代碼如下:static void Main(string args) int arr = new int5 1, 2, 3, 4, 5 ; for (int i = 0; i arr.Length; i+)
43、Console.WriteLine(arr0=1, i, arri); Console.ReadKey();【例11.16】使用for語句輸出數(shù)組arr所有元素的值,代【例11.16】輸出結果如下:arr0=1arr1=2arr2=3arr3=4arr4=5【例11.16】輸出結果如下:(4)foreach語句foreach語句可以在循環(huán)語句塊中依次處理數(shù)組或對象集合中的每個元素,語法如下:for( in ) (4)foreach語句foreach語句可以在循環(huán)語句塊中【例11.17】使用foreach語句輸出數(shù)組arr所有元素的值,代碼如下:static void Main(string a
44、rgs) int arr = new int5 1, 2, 3, 4, 5 ; foreach (int element in arr) Console.WriteLine(element); Console.ReadKey();【例11.17】使用foreach語句輸出數(shù)組arr所有元素【例11.17】輸出結果如下:12345【例11.17】輸出結果如下:11.5.3 跳轉控制語句(1)break語句(2)continue語句11.5.3 跳轉控制語句(1)break語句(1)break語句break語句用于退出當前的循環(huán)體或switch語句。在介紹switch語句時已經演示了break語句
45、的使用,下面介紹在循環(huán)控制語句中使用break語句的方法。(1)break語句break語句用于退出當前的循環(huán)體或sw【例11.18】在數(shù)組arr中查找等于10的元素,找到后退出循環(huán),并輸出該元素在數(shù)組中的序號,代碼如下:static void Main(string args) int arr = new int5 1, 21, 10, 43, 25 ; int index = -1; for(int i=0; i= 0) Console.WriteLine(等于10的數(shù)組索引為0, index); else Console.WriteLine(沒有找到等于10的數(shù)組元素。); Consol
46、e.ReadKey();【例11.18】在數(shù)組arr中查找等于10的元素,找到后退出(2)continue語句continue語句用于將程序的控制權轉向循環(huán)語句的下一次循環(huán)操作。(2)continue語句continue語句用于將程序的控【例11.19】遍歷數(shù)組arr中的元素,輸出其中的偶數(shù),代碼如下:static void Main(string args) int arr = new int5 1, 21, 10, 44, 25 ; int index = -1; for(int i=0; iarr.Length; i+) if (arri % 2 = 1) continue; Conso
47、le.WriteLine(arri); Console.ReadKey();【例11.19】遍歷數(shù)組arr中的元素,輸出其中的偶數(shù),代碼11.5.4 異常處理語句C#的異常處理語句trycatch,語法如下:try catch() 11.5.4 異常處理語句C#的異常處理語句trycat【例11.20】下面的實例演示當發(fā)生除0錯誤時不進行異常處理的情況。static void Main(string args) int i = 10; int result = 30 / (i - 10); Console.WriteLine(result);【例11.20】下面的實例演示當發(fā)生除0錯誤時不進行
48、異常處理未處理異常未處理異?!纠?1.21】下面的實例演示當發(fā)生除0錯誤時進行異常處理的情況。static void Main(string args) try int i = 10; int result = 30 / (i - 10); Console.WriteLine(result); catch (Exception ex) Console.WriteLine(ex.Message); Console.ReadKey();【例11.21】下面的實例演示當發(fā)生除0錯誤時進行異常處理的【例11.22】下面的實例演示trycatchfinally語句的使用情況。static void Ma
49、in(string args) int i = 0; try i = 10; int result = 30 / (i - 10); Console.WriteLine(result); catch (Exception ex) Console.WriteLine(ex.Message); finally i = 0; Console.Write(i); Console.ReadKey();【例11.22】下面的實例演示trycatchfinal11.6 類和對象面向對象程序設計思想創(chuàng)建類構造函數(shù)和析構函數(shù)方法11.6 類和對象面向對象程序設計思想11.6.1 面向對象程序設計思想11.6.1
50、 面向對象程序設計思想面向對象程序設計具有如下特性對象唯一性抽象性繼承性多態(tài)性面向對象程序設計具有如下特性對象唯一性11.6.2 創(chuàng)建類在Visual Studio的菜單中依次選擇“項目”/“添加類”,打開“添加新項”對話框。11.6.2 創(chuàng)建類在Visual Studio的菜單中依使用class關鍵字可以定義一個類 class 使用class關鍵字可以定義一個類 class員工類Employee的實例public class Employee public string EmpName; / 姓名 public string Sex; / 性別 public int Wage; / 工資 p
51、ublic string IDCard; / 身份證號 / / 輸出員工信息 / public void PrintEmpInfo() Console.WriteLine(EmpName); Console.WriteLine(Sex); Console.WriteLine(Wage); Console.WriteLine(IDCard); 員工類Employee的實例public class Emp【例11.23】下面的實例演示了如何訪問對象屬性和和方法。static void Main(string args) Employee obj = new Employee(); obj.EmpN
52、ame = 小明; obj.Sex = 男; obj.Wage = 2500; obj.IDCard = 1234567890abcd; obj.PrintEmpInfo(); Console.ReadKey();【例11.23】下面的實例演示了如何訪問對象屬性和和方法。【例11.24】修改類Employee的定義,將字段設置為private類型,并使用公共屬性來獲取和設置字段的值,代碼如下:class Employee private string empName; / 姓名 private string sex; / 性別 private int wage; / 工資 private st
53、ring idCard; / 身份證號 / / empName字段對應的屬性 / public string EmpName get return empName; set empName = value; 【例11.24】修改類Employee的定義,將字段設置為p【例11.24】 / / sex字段對應的屬性 / public string Sex get return sex; set sex = value; 【例11.24】 / 【例11.24】 / / wage字段對應的屬性 / public int Wage get if (wage 0) return wage; else r
54、eturn 0; set if (value 0) wage = value; else wage = 0; 【例11.24】 / 【例11.24】 / / idCard字段對應的屬性 / public string IDCard get return idCard; set idCard = value; / / 訪問私有字段,輸出員工信息 / public void PrintEmpInfo() Console.WriteLine(empName); Console.WriteLine(sex); Console.WriteLine(wage); Console.WriteLine(idCard); 【例11.24】 / 11.6.3 構造函數(shù)和析構函數(shù)1構造函數(shù)構造函數(shù)在創(chuàng)建對象時自動執(zhí)行,用于初始對象的初始化。每個類都有構造函數(shù),它的函數(shù)名與類名相同。例如,在類Employee中定義構造函數(shù),代碼如下:public Employee() empName = ; sex = ; wage = 0; idCard = ;11.6.3 構造函數(shù)和析構函數(shù)1構造函數(shù)構造函數(shù)在構造函數(shù)中還可以使用參數(shù)。通常使用參數(shù)設
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/Z 133-2025納米技術納米材料導致蛋白質二級結構變化評估紫外圓二色光譜法
- 婦產科VR分娩模擬與產前溝通策略
- 大數(shù)據(jù)在社區(qū)慢病路徑管理中的價值
- 多肽藥物的單分子修飾與活性提升
- 2025年大學體育保健學(運動營養(yǎng))試題及答案
- 2026年網絡營銷(營銷規(guī)范)試題及答案
- 2026年風光熱儲多能互補項目評估報告
- 2025年中職燈具安裝(線路布置)試題及答案
- 2026年早期教育(親子互動游戲案例)試題及答案
- 多灶性難治性癲癇的激光消融治療策略
- 新疆維吾爾自治區(qū)普通高中2026屆高二上數(shù)學期末監(jiān)測試題含解析
- 2026年遼寧金融職業(yè)學院單招職業(yè)技能測試題庫附答案解析
- 2026北京海淀初三上學期期末語文試卷和答案
- 2024-2025學年北京市東城區(qū)五年級(上)期末語文試題(含答案)
- 人工智能在醫(yī)療領域的應用
- 2025年廣東省茂名農墾集團公司招聘筆試題庫附帶答案詳解
- 【10篇】新部編五年級上冊語文課內外閱讀理解專項練習題及答案
- 南京市雨花臺區(qū)醫(yī)療保險管理中心等單位2025年公開招聘編外工作人員備考題庫有完整答案詳解
- 礦業(yè)企業(yè)精益管理實施方案與案例
- 2026年共青團中央所屬事業(yè)單位社會人員公開招聘18人備考題庫及答案詳解(新)
- 2026年寧夏賀蘭工業(yè)園區(qū)管委會工作人員社會化公開招聘備考題庫帶答案詳解
評論
0/150
提交評論