- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
回传值资料型别
方法
05
5.1 方法
在一個較大型的程式中,通常會將具有特定功能或經常重複使用的程式,撰寫成獨立的小單元,稱為「方法」(Method),並賦予方法一個名稱,當程式需要時就可以呼叫此方法來執行該段特定程式。(此種重複使用的程式小單元在其他語言中可能稱為程序、副程式或函式, Visual C# 為了達到物件導向精神, 則統稱為方法)。
使用方法的程式設計方式具有下列的好處:
將大程式切割後由多人撰寫,有利於團隊分工,可縮短程式開發的時間。
可縮短程式的長度,程式碼也可重複使用,當再開發類似功能的產品時,只需稍為修改即可以套用。
程式可讀性高,易於除錯和維護。
5.1.1 類別與方法
Visual C# 是物件導向的程式語言,所撰寫出來的應用程式都是由一個或多個類別組成;方法是類別的成員之一,所以方法必須置於類別中。 以主控台應用程式為例,系統設定由 Program 類別的 Main 方法開始執行,所以建立一個主控台應用程式專案時,系統會自動產生下列程式碼:
5.1.2 建立方法
存取修飾詞:存取修飾詞常用的有 public、private 和 protected。public 關鍵字表示方法的存取為共用型態,即允許目前應用程式中的所有類別均可存取;private 關鍵字則表示方法只允許同一類別存取;protected 關鍵字則表示允許同一類別及其子類別存取。若省略關鍵字,系統的預設值為 private。
static:加上 static 關鍵字宣告的方法,稱為「靜態方法」;省略 static 宣告的方法,稱為「案例方法」。在同一類別中可以直接呼叫靜態方法,而不同類別的敘述,則必須以「類別. 靜態方法」呼叫。案例方法在下一章中說明。
回傳值資料型別:方法執行完畢後可以有一個傳回值,回傳值的資料型別即為此處宣告的資料型別,若該方法沒有傳回值則以 void 宣告。
方法名稱:方法名稱和變數命名規則相同,必須使用合法的命名,且在相同的類別中,不可以使用相同的方法名稱 ( 除非是方法多載,方法多載參考 5.4 節)。
參數串列:參數串列可有可無,在宣告方法中參數串列是用來接收傳遞進來的資料,稱為形式參數 (Formal Parameter),如果有多個參數,則參數之間必須用逗號 (「,」) 分開,參數的型態可以使用變數、陣列、物件或使用者自訂的資料型別。
return:return 用以結束方法,返回呼叫程序;「return 返回值」則用以傳回返回值並返回呼叫程序。 返回值 的資料型別必須和回傳值資料型別的宣告相同,若傳回值型別為 void,則return 也可以省略。
5.1.3 呼叫靜態方法
呼叫靜態方法中的參數串列, 稱為引數 (Argument), 又稱實參數 (Actual Argument),參數亦可省略 ( 但不可以省略括號)。實參數串列中的資料型態可以是常數、變數、運算式、物件或使用者自訂的資料型態 ( 形式參數不可使用常數和運算式)。實參數將資料傳遞給形式參數,兩者命名可以相同,也可以不相同,但參數的資料型態必須一致。
5.1.4方法返回值
「return 返回值」用以傳回返回值並返回呼叫程式, 返回值 的資料型別必須和回傳值資料型別的宣告相同,若傳回值型別為 void,則 return 也可以省略。
有些特殊情況必須立刻返回呼叫程式時,可以使用 return 來強迫中止方法的執行。例如方法中有無窮廻圈,可利用 return 直接結束廻圈並立刻返回呼叫程式。
5.2 參數傳遞方式
方法是藉參數串列來傳遞資料,當參數的個數超過一個以上時,參數中間以逗號分開,傳遞參數的方式有傳值呼叫、傳址呼叫、out 和 params。
5.2.1傳值呼叫
讀者需特別留意,在傳值呼叫中的實參數和形式參數是兩個不同的變數 ( 其名稱可以相同,當然也可以不同),static int Turbo(int Speed) 中的 Speed 形式參數為呼叫方法 Turbo(Speed) 實參數 Speed 的複本,兩者分別指到不同的記憶體位址,當結束方法後,形式參數即自動被釋放,因此不會影響原來實參數的值。
5.2.2 傳址呼叫
在傳址呼叫中,實參數和形式參數共用相同的記憶體位址,所以改變方法中形式參數的值就等於改變主程式中實參數的值。
在傳址呼叫中的實參數和形式參數是相同的變數 ( 其名稱可以不同,當然也可以相同),Turbo(ref int MySpeed) 方法中的 MySpeed 形式參數為呼叫程序 Turbo(refSpeed) 實參數 Speed 的正本,兩者指到相同的記憶體位址,所以改變形式參數MySpeed 即相當於改變實參數Speed 的值。
5.2.3 傳出呼叫
傳出呼叫與傳址呼叫雷同,實參數和形式參數共用相同的記憶體位址,
文档评论(0)