初學筆記(C#方法的參數傳遞)

來源:互聯網
上載者:User

標籤:style   io   使用   ar   strong   資料   sp   on   c   

     在聲明方法時,所定義的參數是形式參數(簡稱形參),這些參數的值由調用方負責為其傳遞,調用方傳遞的是實際資料,成為實際參數(簡稱實參),在調用方法時,,必須嚴格按照方法所定義的參數類型和順序指定實參。方法的參數傳遞按性質分為按值傳遞和按引用傳遞。

1.安值傳參

     按值傳遞時,把實參變數的值賦給相應的行參變數,即被調用的方法接受的只是實參的資料值。當方法內部更改了形參資料時,不會影響到是參變數的值,即實參和形參變數是兩個不相同的變數,它們具有各自的記憶體位址和資料值。故實參傳遞給形參是一個單向值傳遞。實值型別的參數在傳遞時預設為按值傳參。string和object雖是引用型資料,但從表現形式來看,其具有按值傳參的效果。

2.按引用傳參

        方法只要能返回一個值,在實際中,常常需要方法能夠返回多個值或修改傳入的參數值並返回,此時只用return語句是無法做到的,這是可以使用按引用傳參來實現。

        在傳遞引用參數時,調用方將把實參的引用傳遞給相應的形參。實參的引用代表了資料的記憶體位址,因此,形參和實參指向同一個引用。如果在方法內部更改形參所引用的資料值,那麼同時修改了實參所引用的資料值。當實值型別和string型別參數要按引用方式傳遞時,通過ref關鍵字聲明引用參數,無論是實參還是形參,要按引用傳參,就必須添加關鍵字ref。

3.輸出參數

       方法中的return只能返回一個值,引用參數可以返回多個值,但在用ref修飾的參數在傳遞前必須先初始化。但有時參數在傳遞之前並不確定,其值應在方法調用結束後返回,這時可以使用使用輸出參數,它不需要對實參初始化,輸出參數專用於方法中的資料通過形參返回給實參,但不會將實參的值傳遞給形參。一個方法中可以有多個輸出參數。

       在C#中,通過out關鍵字來聲明參數,無論是實參還是形參,只要是輸出參數,就必須添加out關鍵字。

       用ref和out修飾的參數都是參考型別傳參形式,在方法內部的修改和賦值都會被保留在實參中,但它們在使用時有一定的區別。

       (1)用ref修飾的參數,在方法傳參之前必須對實參賦值。

       (2)用out修飾的參數,在方法傳參之前不必初始化,但在方法中必須賦值後才能使用,並且在方法結束前,必須對該參數賦值。

4.參考型別的參數傳遞

      參考型別的參數傳遞是按引用傳遞的,所以參考型別的參數傳遞時不需ref和out關鍵字(string除外),參考型別參數的傳遞,實際上是將實參資料的引用複製到形參。所以形參和實參共同指向同一記憶體地區。

5.數組型參數

        數組也是參考型別資料,把數組作為參數傳遞時,,也是引用傳遞。但數組作為參數作為參數,有兩種形式:一種是在形參數組前加params修飾,另一種是不加params關鍵字。不加params修飾符時,所對應的實參必須是一個數組名;添加params修飾符時所對應的實參可以是數組名,也可以是數組元素值的列表,此時系統將自動把元素組織到一個數組中。不論哪種,形參數組都不能定義數組的長短。

       在使用params修飾符時,要注意以下幾點:

       (1)params可以修飾任意類型的參數。

      (2)params只能修飾一維數組。

      (3)不能僅基於params關鍵字來重載方法。

      (4)不能對params數組使用ref和out關鍵字。

      (5)params數組只能在最後一個參數(即每個方法只能有一個params數組)。

6.方法的重載

       在這簡單介紹一下方法的重載。重要介紹方法重載的特點:

          (1)重載方法的名稱必須相同。

          (2)重咋方法的參數個數或類型必須不同。

        在調用具有重載的方法時,系統會根據參數的個數或類型來確定最匹配的方法調用。

初學筆記(C#方法的參數傳遞)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.