嵌入式編程技術課程課件PPT_第1頁
嵌入式編程技術課程課件PPT_第2頁
嵌入式編程技術課程課件PPT_第3頁
嵌入式編程技術課程課件PPT_第4頁
嵌入式編程技術課程課件PPT_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第一章 編制簡單c#應用程序1 C#的由來 微軟于2000 年6 月26 日正式發(fā)布了C#。C#是一種最新的、面向對象的編程語言。C#使得程序員可以在 Microsoft 開發(fā)的最新的 .NET 平臺上快速地編寫Windows應用程序,而且 Microsoft .NET 提供了一系列的工具和服務來最大程度地開發(fā)和利用計算與通信領域。1.1 C#語言簡介 2 C#的特點 1)語法簡潔易用 2)能與 Web結合緊密3)具備.NET的自動的資源回收機制 4)具備完整的安全性與完善的異常處理機制5)版本可控(Versionable)6)具備良好的靈活性和兼容性 1.1 C#語言簡介 .NET 是Mic

2、rosoft XML Web services 平臺。強大的集成開發(fā)環(huán)境(IDE)Visual Studio .NET。XML Web services 允許應用程序通過 Internet進行通訊和共享數據。.NET 的核心是 Microsoft .NET Framework(微軟 .NET 框架體系)。2 .NET開發(fā)平臺 1 創(chuàng)建項目 (1) 打開VS2010集成開發(fā)環(huán)境。 (2) 創(chuàng)建項目,方法有3種:第一種在【起始頁】中單擊【創(chuàng)建】選項中【項目】創(chuàng)建;第 2 種方法是單擊【文件】菜單,選擇【新建】|【項目】創(chuàng)建;第3 種方法是單擊工具欄上的第 1 個【新建】按鈕,選擇【項目】創(chuàng)建。單擊

3、【項目】按鈕后,將顯示【新建項目】對話框,如圖 1.9 所示。 (3) 在【項目類型】框內選中【Visual C#】項目下的【Windows窗體應用程序】選項。 (4) 在【模板】列表框內選擇【Windows窗體應用程序】或者【控制臺應用程序】項。 本書將重點介紹“Windows 窗體應用程序”和“控制臺應用程序”的編寫,請讀者熟記這兩種應用程序的創(chuàng)建方法。 (5) 單擊【位置】文本框右邊的【瀏覽】按鈕,選擇一個文件夾對項目進行保存或者直接在文本框內進行手動更改。 (6) 在【名稱】文本框內,項目名稱默認為“ConsoleApplication1”或“WindowsFormsApplicati

4、on1”,可以根據實際情況把項目名稱改為自己喜歡的名字。 (7) 單擊窗口右下角的【確定】按鈕,建立所要編寫的應用程序。 注意:前面的 項目創(chuàng)建的7個步驟是創(chuàng)建【Windows 應用程序】或者【控制臺應用程序】所必須要做的相同的準備工作。1.3 第一個控制臺應用程序1.3 第一個控制臺應用程序2 創(chuàng)建第一個控制臺應用程序 【任務1-1】 編寫第一個控制臺應用程序。1. 任務要求:1、在C盤根目錄下新建一個自己學號姓名的文件夾;2、在自己的學號文件夾下創(chuàng)建第一個控制臺應用程序helloc(項目名稱);3、控制臺應用程序完成的功能是:輸出字符串“這是我的第一個控制臺應用程序!”2. 創(chuàng)建步驟控制臺

5、應用程序的步驟: (1) 根據上述創(chuàng)建【控制臺應用程序】的方法創(chuàng)建【名稱】為“helloc”的控制臺應用程序。 (2) 創(chuàng)建好后在開發(fā)環(huán)境界面的項目設計區(qū)顯示的是【代碼】窗口。 在開發(fā)環(huán)境界面的浮動面板區(qū)??康拇翱?【解決方案資源管理器】生成名稱為“helloc”的解決方案。如圖 1.10 所示。 (3) 在代碼static void Main(string args)后面的兩個大括號之間輸入代碼 Console.WriteLine(這是我的第一個控制臺應用程序!);;如圖 1.11 所示,這是用來運行顯示“這是我的第一個控制臺應用程序!”的代碼。(4) 為了防止程序運行完畢后控制臺窗口自動關

6、閉。需要再輸入代碼: Console.ReadLine();否則程序運行完畢會自動關閉控制臺窗口,因為運行速度快而看不到結果。1.3 第一個控制臺應用程序3 編寫第一個Windows應用程序【任務1-2】 編寫第一個Windows窗體應用程序1.任務要求:在自己的學號文件夾下創(chuàng)建第一個Windows應用程序helloworld,實現功能功能:當單擊“確定”按鈕時,上方的文本框中將彈出“恭喜,你會編寫C#程序了!”界面如下圖4.13所示。1.3 第一個控制臺應用程序第二章 常用標準控件1. 調用控件 在創(chuàng)建窗體應用程序時,需要使用某一控件,只要單擊工具箱中相應的按鈕,然后在窗體上拖動出相應大小的

7、矩形框,窗體上就會生成一個大小相對應的控件。 具體的操作過程如下。 (1) 點擊工具欄上 圖標,打開工具箱。(2) 在工具箱中找到需要的控件,單擊該按鈕,這一按鈕呈現被按下狀態(tài),表明被選定。 (2) 將鼠標移動到控件上,這時鼠標的指針變成十字形并帶有該控件的形狀,移動到需要放置的的位置,然后點擊鼠標左鍵。(3) 點擊控件,控件上出現帶小方格的虛線框,鼠標呈帶箭頭的十字時可以移動控件,調整位置,移動鼠標至控件邊界虛線框可以調整控件的大小。2.1 調用和調整控件 2. 調整空間尺寸與位置 移動鼠標,點擊需要調整的控件,可以選中窗體上添加的控件,在控件的四周出現的小矩形框虛線框稱為尺寸手柄??捎眠@些

8、尺寸手柄調節(jié)控件的尺寸,也可用鼠標、鍵盤和菜單命令移動控件、鎖定和解鎖控件位置以及調節(jié)控件位置。 選中控件,然后移動鼠標至虛線邊框的尺寸手柄上,這時鼠標指針會變成雙箭頭形。按住鼠標左鍵,移動鼠標可以調整控件大小。在調整Windows窗體是用法一樣。調整控件的位置時,可以使用上述方法,按住鼠標移動,也可以在出現尺寸手柄時按鍵盤上的方向鍵來實現,調整控件到適當的位置。調整控件大小和位置,也可以在選中控件后,在其屬性窗口中修改 Size 屬性和 Location 屬性,可以精確的實現控件尺寸與位置的調整。 在 Visual Stdio.NET 提供了控件之間的對齊基準線,當移動一個控件到與另一個控件

9、平行或垂直位置時,Visual Stdio.NET 會自動將2個或多個控件對齊到同一直線。 2.1 調用和調整控件 3.多控件布局1) 快速生成多個控件 打開工具箱,在工具箱中直接雙擊所需要的控件按鈕,就會在當前窗體上生成一個個默認大小的控件2) 調整疊放次序 如果兩個控件的范圍有重疊,默認循序是后放到窗體上的控件將被視為上層,將覆蓋與它重疊的下層控件的部分??梢渣c擊鼠標右鍵,彈出菜單選項【置于頂層】【置于底層】來修改層次位置,也可以通過【格式】|【順序】菜單命令下的【置于頂層】【置于底層】來調整。其中【置于頂層】將被選控件設置為上層,而【置于底層】將被選控件設置為下層。 也可以點擊布局工具欄

10、中的 來調整。3) 選擇多個控件在窗體上選擇多個控件的方法有以下幾種:A選擇其中一個控件后,按住Ctrl 鍵或 Shift 鍵,再依次點擊需要選擇的其他控件,選定的控件都會出現尺寸權柄。B也可以在窗體上選定一個位置按住鼠標左鍵拖出一個矩形框,松開鼠標后框內選定框內所有控件。這時如果按住鼠標左鍵移動鼠標,可以同時移動選定的多個控件。也可以拖動尺寸權柄,同時調整多個控件的尺寸的大小。2.1 調用和調整控件 1、控件常用屬性:(1)Name 屬性:用來獲取或設置窗體的名稱,在應用程序中可通過Name 屬性來引用窗體。(2) WindowState 屬性: 用來獲取或設置窗體的窗口狀態(tài)。取值有三種:

11、Normal (窗體正常顯示)、Minimized(窗體以最小化形式顯示)和Maximized(窗體以最大化形式顯示)。(3)StartPosition 屬性:用來獲取或設置運行時窗體的起始位置。(4)Text 屬性:該屬性是一個字符串屬性,用來設置或返回在窗口標題欄中顯示的文字。(5)Width 屬性:用來獲取或設置窗體的寬度。(6)Height 屬性:用來獲取或設置窗體的高度。(7)Left 屬性:用來獲取或設置窗體的左邊緣的x 坐標(以像素為單位)。(8)Top 屬性:用來獲取或設置窗體的上邊緣的y 坐標(以像素為單位)。(9)ControlBox 屬性:用來獲取或設置一個值,該值指示在

12、該窗體的標題欄中是否顯示控制框。值為true時將顯示控制框,值為false 時不顯示控制框。(10)MaximizeBox 屬性:用來獲取或設置一個值,該值指示是否在窗體的標題欄中顯示最大化按鈕。值為true 時顯示最大化按鈕,值為false 時不顯示最大化按鈕。2.2 常用控件的使用 (11)MinimizeBox 屬性:用來獲取或設置一個值,該值指示是否在窗體的標題欄中顯示最小化按鈕。值為true 時顯示最小化按鈕,值為false 時不顯示最小化按鈕。(12)AcceptButton 屬性:該屬性用來獲取或設置一個值,該值是一個按鈕的名稱,當按Enter 鍵時就相當于單擊了窗體上的該按鈕。

13、(13)CancelButton 屬性:該屬性用來獲取或設置一個值,該值是一個按鈕的名稱,當按Esc 鍵時就相當于單擊了窗體上的該按鈕。(14)Modal 屬性:該屬性用來設置窗體是否為有模式顯示窗體。如果有模式地顯示該窗體,該屬性值為true;否則為false。當有模式地顯示窗體時,只能對模式窗體上的對象進行輸入。必須隱藏或關閉模式窗體(通常是響應某個用戶操作),然后才能對另一窗體進行輸入。有模式顯示的窗體通常用做應用程序中的對話框。(15)ActiveControl 屬性:用來獲取或設置容器控件中的活動控件。窗體也是一種容器控件。(16)ActiveMdiChild 屬性:用來獲取多文檔界

14、面(MDI)的當前活動子窗口。2.2 常用控件的使用 (17)AutoScroll 屬性:用來獲取或設置一個值,該值指示窗體是否實現自動滾動。如果此屬性值設置為true,則當任何控件位于窗體工作區(qū)之外時,會在該窗體上顯示滾動條。另外,當自動滾動打開時,窗體的工作區(qū)自動滾動,以使具有輸入焦點的控件可見。(18)BackColor 屬性:用來獲取或設置窗體的背景色。(19)BackgroundImage 屬性:用來獲取或設置窗體的背景圖像。(20)Enabled 屬性:用來獲取或設置一個值,該值指示控件是否可以對用戶交互作出響應。如果控件可以對用戶交互作出響應,則為true;否則為false。默認

15、值為true。(21)Font 屬性:用來獲取或設置控件顯示的文本的字體。(22)ForeColor 屬性:用來獲取或設置控件的前景色。(23)IsMdiChild 屬性:獲取一個值,該值指示該窗體是否為多文檔界面(MDI)子窗體。值為true 時,是子窗體,值為false 時,不是子窗體。2.2 常用控件的使用 (24)IsMdiContainer 屬性:獲取或設置一個值,該值指示窗體是否為多文檔界面(MDI)中的子窗體的容器。值為true 時,是子窗體的容器,值為false 時,不是子窗體的容器。(25)KeyPreview 屬性:用來獲取或設置一個值,該值指示在將按鍵事件傳遞到具有焦點的

16、控件前,窗體是否將接收該事件。值為true 時,窗體將接收按鍵事件,值為false 時,窗體不接收按鍵事件。(26)MdiChildren 屬性:數組屬性。數組中的每個元素表示以此窗體作為父級的多文檔界面(MDI)子窗體。(27)MdiParent 屬性:用來獲取或設置此窗體的當前多文檔界面(MDI)父窗體。(28)ShowInTaskbar 屬性:用來獲取或設置一個值,該值指示是否在Windows 任務欄中顯示窗體。(29)Visible 屬性:用于獲取或設置一個值,該值指示是否顯示該窗體或控件。值為true時顯示窗體或控件,為false 時不顯示。(30)Capture 屬性:如果該屬性值

17、為true,則鼠標就會被限定只由此控件響應,不管鼠標是否在此控件的范圍內2、常用方法(1)Show 方法:該方法的作用是讓窗體顯示出來,其調用格式為: 窗體名.Show();其中窗體名是要顯示的窗體名稱。(2)Hide 方法:該方法的作用是把窗體隱藏出來,其調用格式為: 窗體名.Hide();其中窗體名是要隱藏的窗體名稱。(3)Refresh 方法:該方法的作用是刷新并重畫窗體,其調用格式為: 窗體名.Refresh();其中窗體名是要刷新的窗體名稱。(4)Activate 方法:該方法的作用是激活窗體并給予它焦點。其調用格式為: 窗體名.Activate();其中窗體名是要激活的窗體名稱。(

18、5)Close 方法:該方法的作用是關閉窗體。其調用格式為:窗體名.Close();其中窗體名是要關閉的窗體名稱。(6)ShowDialog 方法:該方法的作用是將窗體顯示為模式對話框。其調用格式為:窗體名.ShowDialog();2.2 常用控件的使用 3常用事件(1)Load 事件:該事件在窗體加載到內存時發(fā)生,即在第一次顯示窗體前發(fā)生。(2)Activated 事件:該事件在窗體激活時發(fā)生。(3)Deactivate 事件:該事件在窗體失去焦點成為不活動窗體時發(fā)生。(4)Resize 事件:該事件在改變窗體大小時發(fā)生。(5)Paint 事件:該事件在重繪窗體時發(fā)生。(6)Click 事

19、件:該事件在用戶單擊窗體時發(fā)生。(7)DoubleClick 事件:該事件在用戶雙擊窗體時發(fā)生。(8)Closed 事件:該事件在關閉窗體時發(fā)生。2.2 常用控件的使用 第三章 C#編程基礎 關鍵字3.1 C#中的關鍵字和標志符AbstractAsBaseBoolbreakByteCharCheckedClassConstContinueDecimalIfGotoForeachForFloatFixedExternExplicitEventEnumElseDoubleImplicitIntInterfaceInternalIsLockNewNullObjectOperatorOutOverri

20、deStaticStachallocSizeofShortScaledSbyteReadonlyPublicProtectedPrivateParamsSwitchTrueTryTypeofUnitUlongUncheckedUsingWhileVoidVirtualCaseInThrowFalseCatchLongDefaultNamespaceUshortReturnDelegateStructThisDoStringRefUnsafeFinally2 標志符標識符命名的規(guī)范:(1)只能由字母、數字、漢字、下劃線組成,且必須以字母或下劃線開頭。如abc12,_abc等,如使用1a作為標志符

21、就是錯誤的,應該a1。(2)為了提高程序可讀性與記憶性,標識符要有一定的意義。在標志符命名時,盡可能做到“見名知意”,可以提高程序的可讀性,使得設計的程序可讀性高,易懂。(3)用戶定義的標識符不能與C#語言的關鍵字(保留字)同名。前面關鍵字的時候提到關鍵字是C#編譯系統(tǒng)預定義的保留標志符,程序設計中定義標志符不能使用關鍵字,否則會報錯,編譯失敗。(4)C#對標識符的大小寫敏感,一定要注意大小寫一致。比如定義一個標志符為Abc,在使用這個標志符時,寫成abc,就會報錯,這兩個是不同的標志符,而不是一個標志符。(5)標志符中不能包含空格。3.1 C#中的關鍵字和標志符3 C#的兩種命名約定C#的兩

22、種命名約定:CamelCase和PascalCase3.1 C#中的關鍵字和標志符3.2 數據類型1 簡單數組(一 維 數 組)(一)一維數組的聲明與創(chuàng)建1數組的聲明 數組是一種數據結構,它可以包含同一個類型的多個元素。在 C中,聲明一維數組的方式是在類型名稱后添加一對方括號,如下所示: 數據類型 數組名例: int myArray; /定義了一個整型數組 myArray。聲明一個數組時不需要先確定數組的長度,數組的大小不是其類型的類容。2數組初始化 聲明了數組之后,就必須為數組分配內存,以保存數組的所有元素。數組是引用類型,所以必須給它分配堆上的內存。為此,應使用new運算符,指定數組中元素

23、的類型和數量來初始化數組的變量。如下所示: 數組名 = new 數據類型數組大小表達式 3.3 數組(二)一維數組的初始化 前面講了數組的聲明,在C#中聲明數組的同時也可以對其進行初始化,只需將初始值放在大括號“”內即可,表達式如下所示: 數據類型 數組名 = new 數據類型 初值表其中,初值表中的初始數據用逗號分隔。例如,將上面聲明語句初始化(這種情況下,數組的長度由大括號中的元素個數來確定),其中每個數組元素被初值表中的數據初始化。 例:int myArray = new int 1, 3, 5, 7; 3.3 數組(三)一維數組的元素的訪問 在聲明和初始化數組之后,可以使用索引器訪問其

24、中的元素。數組只支持有整型參數的索引器。索引器總是以0開頭,表示第一個元素??梢詡鬟f給索引器的最大值是元素個數減1,因為索引從0開始。訪問一維數組元素的方式為: 數組名索引 比如上面的初始化的例子:int arr = 1, 3, 5, 7; 執(zhí)行后,各處元素按順序排列如圖 3.3所示。 圖3.3 數組元素排列圖 3.3 數組對數組進行賦值時,可以像訪問變量的形式直接給數組元素賦值,也可以使用循環(huán)語句給每個元素賦值,例:int a = new int4; a0 = 8; /給a0賦值8 a4 = a0; /給a4賦值a0,最終a4也將獲得整數8的值程序分析:上面的語句定義、創(chuàng)建一個大小為 4的整

25、型數組 a,并給數組元素 a0、a4賦值: 3.3 數組1 C#中的變量在計算機系統(tǒng)中,處理的數據是存在存儲器中的,存儲單元可以用一個名稱,也就是一個標志符來表示,比如我們要計算55+60,55和60都是存在于存儲單元中的,我們定義X和Y,并用X代表55,Y代表60,則上面的式子可以寫成X+Y。所以在程序設計中,變量可以用于保存程序運行過程中的輸入數據、計算的結果值及其中間數據等。變量的聲明格式:在C#中,變量必須先定義后使用,其聲明格式為:格式1:變量修飾符 類型說明符 變量名1=初值1,變量名2=初值2,;格式2:變量修飾符 類型說明符 變量名1,變量名2,;3.4 變量和常量2 常量“常

26、量”的廣義概念是:不變化的量(利如:在計算機程序運行時,不會被程序修改的量;數學函數中的某一個量,例如每一個具體的圓的半徑、直徑數值;物理學中的靠近地面的重力加速度;真空中的光速數值;不同的微粒的各自的質量)換言之,常量,在計算機技術方面雖然是為了硬件、軟件、編程語言服務,但是它并不是專門為硬件、軟件、編程語言而引入的概念。常量可區(qū)分為不同的類型,如:25、0、-8為整型常量,6.8、-7.89為實型常量,a、b為字符常量??偠灾A烤褪撬4娴闹凳冀K保持不變的存儲單元的名稱。常量的聲明格式為:常量修飾符 const 類型說明符 變量名=常量表達式;3.4 變量和常量1隱式類型轉換隱式轉換就

27、是系統(tǒng)默認的、不需要加以聲明就可以進行的轉換。實現的是將一種類型轉換為另一種類型的過程中不需要人為的添加代碼去實現,編譯器無需對轉換進行詳細檢查就能夠安全地執(zhí)行轉換。比如從int類型轉換到long類型就是一種隱式轉換。隱式轉換一般不會失敗,轉換過程中也不會導致信息丟失。例: int i=10;long j=i;3.5 C#的隱式類型轉換和顯式類型轉換隱式數值轉換包括以下幾種:從sbyte類型到short,int,long,float,double,或decimal類型。從byte類型到short,ushort,int,uint,long,ulong,float,double,或decimal類

28、型。從short類型到int,long,float,double,或decimal類型。從ushort類型到int,uint,long,ulong,float,double,或decimal類型。從int類型到long,float,double,或decimal類型。從uint類型到long,ulong,float,double,或decimal類型。從long類型到float,double,或decimal類型。從ulong類型到float,double,或decimal類型。從char類型到ushort,int,uint,long,ulong,float,double,或decimal類型

29、。3.5 C#的隱式類型轉換和顯式類型轉換2 C#的顯式類型轉換顯式類型轉換,又叫強制類型轉換。與隱式轉換正好相反,顯式轉換需要用戶明確地指定轉換的類型。比如要把一個long型轉化成int型,或者把一個數字轉化成字符型。例: long l=5000;int i=(int)l;顯式轉換的適用用于高精度向低精度數據類型的轉換,一般格式如下: 格式1:(數據類型)表達式; 格式2: 數據類型.Parse(); 格式3: 變量(表達式).ToSring();3.5 C#的隱式類型轉換和顯式類型轉換運算符類別運算符基本算術運算+ - * / % !遞增、遞減+ -位移邏輯& | ! - & |賦值= +

30、= -= *= /= %= &= |= = =關系= != =字符串串聯+成員訪問索引 轉換( )條件運算?:3.6運算符與表達式運算符和表達式是程序的基本構成,程序的任務是對數據進行處理,數據是程序處理的對象,而運算符是施加給這些數據的操作。數據和運算符是表達式的基本元素。表達式由變量、常量、運算符、函數和圓括號按一定的規(guī)則組合而成。 第四章 條件判斷與循環(huán)控制語句1 簡單if語句C#中if語句是指編程語言中用來判定所給定的條件是否滿足,根據判定的結果(真或假)決定執(zhí)行給出的兩種操作之一。其一般形式為:if(表達式)語句塊4.1條件判斷語句2 ifelse語句當判斷語句只存在兩種結果時,可以

31、使用ifelse語句來實現。其變現形式為:if(條件) 語句塊1; else 語句塊2; 4.1條件判斷語句3 ifelse if當判斷存在多種可能結果時,可以使用ifelse if語句來實現,其表現形勢如下:if (條件1) /語句1else if (條件2) /語句2else if (條件n) /語句n4.1條件判斷語句在ifelse if語句中,if 塊和 else if 塊本質上是互斥的,也就是說,一旦語句1得到了執(zhí)行,程序會跳過 else if 塊,else if 塊中的判斷語句以及語句2一定會被跳過;同時語句2的執(zhí)行也暗含了條件1判斷失敗和語句1沒有執(zhí)行;當然還有第3個情況,就是條

32、件1和條件2都判斷失敗,語句1和語句2都沒有得到執(zhí)行,以此類推。4 switch語句Switch語句又稱為“開關語句”,作用是實現多分支的開關語句,和if語句相比局有直觀簡介的特點,當條件相當多時,用ifelse及其嵌套語句,使得程序的可讀性變差,switch語句用來處理復雜的條件判斷。其一般語法格式如下:switch(表達式) case 表達式的值1: 待執(zhí)行的一系列語句; break; case 表達式的值n: 待執(zhí)行的一系列語句; break; default: 待執(zhí)行的一系列語句; break; 4.1條件判斷語句1 while 語句while是計算機的一種基本循環(huán)模式,判斷一個條件表

33、達式,以便決定是否進入和執(zhí)行循環(huán)體,當滿足該條件時進行循環(huán),不滿足該條件時則跳出循環(huán)程序流程圖如4.11。 while語句的一般表達式為: while (表達式) 語句塊(又稱循環(huán)體) 4.2 循環(huán)語句2 dowhile 語句 dowhile 語句的表現形式為: do 語句塊 while (表達式);4.2 循環(huán)語句3 for語句 for (表達式 1;表達式2;表達式3) 語句塊(循環(huán)體) 4.2 循環(huán)語句在一個循環(huán)體語句中又包含另一個循環(huán)語句,稱為循環(huán)嵌套,包含的另一個循環(huán)語句車位內嵌的循環(huán),其還可以嵌套循環(huán),稱為多層循環(huán),之前學習的循環(huán)(while 循環(huán)、dowhile 循環(huán)和 for

34、循環(huán))可以互相嵌套使用,使用時需要注意一下幾點。使用循環(huán)嵌套時,內層循環(huán)和外層循環(huán)的循環(huán)控制變量不能相同。循環(huán)嵌套結構的書寫,最好采用“右縮進”格式,以體現循環(huán)層次的關系。盡量避免太多和太深的循環(huán)嵌套結構。4.3 循環(huán)的嵌套 foreach 語句的表現形式如下: foreach (類型 標識符 in 表達式) 循環(huán)體 4.4 foreach 語句 第五章 C#面向對象編程類和對象是面向對象的程序設計語言的核心和本質。類實際上定義了一種嶄新的數據類型。類表示對現實生活中一類具有共同特征的事物的抽象,對象是具體的類,是類的實例化。它描述了一組有相同特性(數據元素)和相同行為(方法)的對象,具有封裝

35、性、繼承性和多態(tài)性等特性。5.1 類和對象的概念類定義:(1)語法格式: 類型修飾 class 類名 :基類 類體(類成員); (2)類定義時的注意點:關鍵字class中的c為小寫字母,在關鍵字class之前,可以指定類的特性和修飾符,用來控制類的可訪問性等;類名一般由名詞或名詞短語構成,一般首字母大寫;類體中可以對常量、字段、方法、屬性、事件、索引器、運算符、構造函數和析構函數等進行定義。5.1 類和對象的概念5.2 類的成員成員說明常量與類關聯的常數值字段類的變量方法類可執(zhí)行的計算和操作屬性與讀寫類的命名屬性相關聯的操作索引器與以數組方式索引類的實例相關聯的操作事件可由類生成的通知運算符類

36、所支持的轉換和表達式運算符構造函數初始化類的實例或類本身所需的操作析構函數在永久丟棄類的實例之前執(zhí)行的操作類型類所聲明的嵌套類型類的每個成員都有關聯的可訪問性,它控制能夠訪問該成員的程序文本區(qū)域。有五種可能的可訪問性形式。下表5.2概述了這些可訪問性。5.2 類的成員可訪問性含義public訪問不受限制protected訪問僅限于此類和從此類派生的類internal訪問僅限于此程序protected internal訪問僅限于此程序和從此類派生的類private訪問僅限于此類1.字段字段是與類或類的實例關聯的變量。使用 static 修飾符聲明的字段定義了一個靜態(tài)字段 (static fiel

37、d)。一個靜態(tài)字段只標識一個存儲位置。對一個類無論創(chuàng)建了多少個實例,它的靜態(tài)字段永遠都只有一個副本。2. 方法方法 (method) 是一種用于實現可以由對象或類執(zhí)行的計算或操作的成員。3. 參數參數用于向方法傳遞值或變量引用。方法的參數從方法被調用時指定的實參 (argument) 獲取它們的實際值。有四種類型的參數:值參數、引用參數、輸出參數和參數數組。5.2 類的成員4.方法體和局部變量方法體指定了在該方法被調用時將執(zhí)行的語句,可以聲明僅用在該方法調用中的變量。這樣的變量稱為局部變量 (local variable)。局部變量聲明指定了類型名稱、變量名稱,還可指定初始值。5. 靜態(tài)方法和

38、實例方法使用 static 修飾符聲明的方法為靜態(tài)方法 (static method)。靜態(tài)方法不對特定實例進行操作,并且只能訪問靜態(tài)成員。5.2 類的成員6. 虛方法、重寫方法和抽象方法若一個實例方法的聲明中含有 virtual 修飾符,則稱該方法為虛方法 (virtual method)。若其中沒有 virtual 修飾符,則稱該方法為非虛方法 (non-virtual method)。7.方法重載方法重載 (overloading) 允許同一類中的多個方法具有相同名稱,條件是這些方法具有唯一的簽名。在編譯一個重載方法的調用時,編譯器使用重載決策 (overload resolution) 確定要調用的特定方法。重載決策將查找與參數最佳匹配的方法,如果沒有找到任何最佳匹配的方法則報告錯誤信息。5.2 類的成員8.其他函數成員其他函數成員包含可執(zhí)行代碼的成員統(tǒng)稱為類的函

溫馨提示

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

評論

0/150

提交評論