Visual C# .NET方 法(技術講解)_第1頁
Visual C# .NET方 法(技術講解)_第2頁
Visual C# .NET方 法(技術講解)_第3頁
Visual C# .NET方 法(技術講解)_第4頁
Visual C# .NET方 法(技術講解)_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

第5章

本章要點:

方法的概念

方法的定義

方法的調用

參數傳遞中的類型轉換

參數的值傳遞和引用傳遞

方法的嵌套調用與遞歸調用5.1循序漸進學理論

5.1.1C#中的程序模塊——方法

5.1.2方法的定義

[格式]:方法修飾符

數據類型說明符

方法名([形式參數說明列表])/*定義方法頭*/{變量、數組的定義語句;

其它可執行部分}【例5-1】

編寫一個方法,用來求任意兩個整數之間的所有數的平方和。【例5-2】

編寫一個實現如下功能的函數:要求用戶輸入姓名,然后輸出五行如下信息:“歡迎您,***同志。這里是C#編程世界!”5.1.3方法的調用

[格式1]:方法名([實際參數列表])[格式2]:對象名.方法名([實際參數列表])例如,上一章編程中使用的語句“randomObj.Next();”就是調用對象randomObj的Next方法。[格式3]:類名.方法名([實際參數列表])【例5-3】編寫程序調用例5-1中的過程pfh。【例5-4】編寫程序調用例5-2中的過程Welcome。5.1.4參數傳遞中的類型轉換

實參類型相應的形參類型boolobjectbytedecimal,double,float,int,uint,long,ulong,object,short,ushortsbytedecimal,double,float,int,long,object,shortchardecimal,double,float,int,uint,long,ulong,object,ushortdecimalobjectdoubleobjectfloatdouble,objectintdecimal,double,float,long,objectuintdecimal,double,float,long,ulong,objectlongdecimal,double,float,objectulongdecimal,double,float,objectshortdecimal,double,float,int,long,objectushortdecimal,double,float,int,uint,long,ulong,object【例5-5】分析下列程序的執行結果。

[程序代碼]usingSystem;classA_5_5{staticfloatSqr(floatk)//參數為float型

{return(k*k);}publicstaticvoidMain(){inty;floatyy;y=6;

yy=Sqr(y);//調用Sqr方法

Console.WriteLine("{0}的平方是{1}",y,yy);//輸出

}}[運行結果]5.1.5參數的傳遞:值傳遞、引用傳遞和輸出參數

所謂參數傳遞是指實參把數據傳給形參的方式,C#中的參數傳遞可分成四種:值傳遞、引用傳遞、輸出參數和參數數組。1.值傳遞

當使用“值傳遞”的方式來傳遞參數時,實參把值復制一份傳給形參,形參接收了實參的值后與實參已不再存在任何聯系。

【例5-6】編寫一個方法,用來把兩個整型變量的值交換,在Main方法中調用該方法加以驗證。2.引用傳遞

當使用“引用傳遞”方式傳遞參數時,調用者給了被調用方法直接訪問和修改調用者的原始數據的權利。在方法中對形參進行修改也就修改了對應的實參,這種方式又稱雙向傳遞。在C#中要通過引用方式傳遞數據,需使用關鍵字ref。使用方法是在定義方法時,在按引用傳遞的形式參數的類型說明符前加上關鍵字ref,在調用方法時,在按引用傳遞的實際參數之前加上關鍵字ref。

3.輸出參數

若將引用傳遞中的關鍵字ref用out替換,則參數就變成了輸出參數。也允許在被調方法中修改與輸出參數相對應的實參的值。輸出參數通常用來指定由被調用方法對參數進行初始化。

【例5-7】利用引用傳遞實現例5-6的功能。

5.1.6變量的生命期和作用域

1.變量的生命期

變量的持續周期(也稱為生命周期)是指該變量在內存中存在的周期。方法中的局部變量有一個自動的生命周期。自動生命周期變量是在程序執行到達它們的聲明語句時由程序自動創建的;也就是說,聲明的程序塊被激活時,它們存在;而在它們聲明的程序塊退出時,釋放它們。我們把具有自動生命周期的變量稱為自動變量或局部變量。

2.變量的作用域

變量能夠使用的程序段稱變量的作用域。變量的作用域有以下規則:(1)在程序塊中聲明的局部變量或引用僅可在該程序塊或者在嵌套于該程序塊的程序塊中被使用。(2)類的成員具有類的作用范圍并且在類的聲明空間中可以被看到。(3)當程序塊嵌套于方法體中,并且在外層程序塊中的一個標識符和內層程序塊中定義的標識符有相同的名字時,將會產生錯誤。

3.靜態變量

靜態變量是用static定義的變量,靜態變量的生命周期是從定義它們的類被載入內存時開始,直到程序運行結束時為止。定義它們的類被載入內存時,就已經為這些變量分配了存儲空間,并對它們進行了初始化。但靜態變量相當于局部變量,其作用域與局部變量相同。

【例5-8】分析下面程序的運行結果。usingSystem;classA_5_8{staticinta=3,b; //①publicstaticvoidMain() //②{intc=6; //③a=a+2;b=b+2;c=c+2; //④func1(); //⑤

Console.WriteLine("{0},{1},{2}",a,b,c); //⑥}staticvoidfunc1(){intb=2,c=3; //⑦a=a+2;b=b+2;c=c+2; //⑧Console.WriteLine("{0},{1},{2}",a,b,c); //⑨}}5.1.7方法的嵌套與遞歸調用

1.方法的嵌套調用

【例5-9】

編寫一個函數求下列的函數值。2.方法的遞歸調用

【例5-10】

若干個人排成一個隊領蘋果,已知第一個人的領的蘋果數為1個,從第二個人開始每個人領的蘋果數是前一個人領的蘋果數的2倍再加3,問第n個人領了多少個蘋果?

一般來說如果某個問題能夠用遞歸來求解,該問題一定能夠歸結成一個函數公式,如本題求第n個人領的蘋果數,用函數apple(n)表示,則本題的apple(n)可描述如下。從程序設計的角度來說,遞歸過程必須解決兩個問題:一是遞歸計算的公式,二是遞歸結束的條件。本題可以寫成:遞歸計算公式:

apple(n)=2*apple(n-1)+3n>1遞歸結束條件:

apple(1)=1凡是能夠表示成上述式子的數學問題均可以用遞歸來實現,在遞歸函數中一般可采用雙分支語句來實現:if(遞歸結束條件)return(遞歸終止值);elsereturn(遞歸計算公式);5.2典型實例練能力

5.2.1典型實例一:求孿生質數

【實例題目】

編寫程序求出100之內的所有孿生質數,所謂孿生質數是指兩個質數,它們的差為2,如5和7、11和13等都是孿生質數。要求:判斷某數是否為質數要用一個方法來實現,編寫成Windows應用程序。程序的設計界面如圖5-5所示,程序的運行界面如圖5-6所示。

圖5-5程序設計界面

圖5-6程序運行界面

5.2.2典型實例二:校園歌手評分

【實例題目】

某學校要舉辦校園歌手大獎賽,現在要讓計算機為選手評分,評分原則為:從若干個評委的打分中去掉一個最低分去掉一個最高分,剩下的得分取平均即是選手的得分。要求:根據評委的打分求出選手的得分需編寫成一個方法,要求編寫成Windows應用程序。程序的設計界面如圖5-7所示,程序的運行界面如圖5

溫馨提示

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

評論

0/150

提交評論