CLR Via C# 閱讀筆記-參數

來源:互聯網
上載者:User

.NET Framework讀書筆記一 參數

  •  預設值、具名引數

在平常工作中,設計方法的時,方法參數的設計是方法設計必須優先謹慎考慮的,比如說參數的類型、個數、預設值、可選性等。設計一個好的方法不管對代碼的可讀性、可維護性、可擴充性都起著很大的作用。在C#中,參數的預設值設定如下所示:

 

參數預設值設定方式如紅色矩形標註所示。函數Main分別對函數ShowInfor進行四次調用。仔細觀察對函數ShowInfor的調用可以發現一個特性如下所示:

程式運行結果:

 

從程式運行結果可以得出以下結論:

  1. 函數以具名引數傳值的順序可以不與函數定義的參數順序不一樣。
  2. 顯示給參數傳遞的值必須在具名引數傳值的左邊。

如果給ShowInfor函數添加一個參數ID,如下定義:

 

由VS的錯誤提示可知:選擇性參數的定義順序必須在必選參數的後面。

u  Out與ref

參數的傳遞方式有兩種:傳值、傳引用,對於基本的資料類型,一般的是按值的方式進行傳遞,如果要按引用的方式進行傳遞,該如何做?這裡就涉及到C#中的Out與Ref相關方面的知識。

對於Out參數,傳遞的實參可以不初始化,但是在函數返回前,必須對該參數進行賦值,在函數內部該參數可寫,如下所示:

 

如果未對Out參數賦值,如下所示:

 

對於Ref參數,傳遞的實參在傳遞給形參前必須對其初始化,在函數內部可讀可寫。

public static void GetName(ref string name)
{
name = "SuperMan";
}

如果未對實參進行初始化,出現如下錯誤,提示:使用了未賦值的變數

針對Out參數和Ref參數類型必須與傳遞的實參的類型一致,否則出現如下錯誤:

u  傳遞可變數量參數 params

通常,在工作中使用最多的還是參數數量固定的方法。其實,在C#中,可以傳遞任意數量的參數,這在設計方法前並不知道將來具體可能有多少個參數的情況下提供了良好的解決方案。主要依靠關鍵字params來解決。Params必須和array聯合使用,否則如下所示:

 

如果確定是該調用可變參數數量函數還是固定參數數量函數?C#編譯器首先檢查是否存在於調用函數完全符合的方法原型,如果存在直接調用。如果不存在,在檢查是否存在使用了ParamArray屬性的方法,如果存在,則調用該方法。整個過程,如下所示:

 

以上就是參數的相關筆記,很少寫部落格,如有不當之處,請指出,我好修正。謝謝

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.