C#基礎 一(方法詳解)

來源:互聯網
上載者:User

標籤:錯誤   作用   具名引數   ams   png   規則   因此   按值傳遞   初始化   

需要知道:類和方法的關係

 

 

方法和參數修飾符

   自訂方法可以有或沒有參數,也可以有或沒有傳回值。可以被各種關鍵字(static、virtual、public、new等)修飾以限制其行為。

                                   

                   C#參數修飾符

 無                                       如果一個參數沒有用參數修飾符標記,則認為它將按值傳遞,這意味著被調用的方法收到未經處理資料的一份副本。

 out                                     輸出參數由被調用的方法賦值,因此它按引用傳遞。如果被調用的方法沒有給輸出參數賦值,就會出現編譯器錯誤。

 ref                                         調用者賦初值,並且可以由被調用的方法可以選地重新賦值。如果被調用的方法未能給ref參數賦值,也不會編譯器錯誤。

 params                                 這個參數修飾符允許將一組可變數量的參數作為單獨的邏輯參數進行傳遞。方法只能有一個params修飾符,而且必須是方法的最後一個參數。

 

預設的參數傳遞行為

 

 

 參考型別:

 

 

不管這裡傳遞的是實值型別還是參考型別,傳遞之前和之後的值是不會變的。Add()方法裡面操作的是資料的副本,不會影響到資料本身。就像在方法裡面申明了一個參數來接受傳遞的參數,在方法裡面操作的是新申明的參數如不是我們傳遞進去的參數。

 

 Out修飾符

   out修飾符叫做輸出參數。定義為帶有輸出參數(通過關鍵字out)的方法有義務在退出這個方法之前,給參數賦一個恰當的值。調用一個帶有輸出參數的方法也需要使用out修飾符。

  

規則:

①聲明一個變數不賦值(賦值編譯不會錯)

②把此變數以Out形式傳到方法裡面

③調用方法後此變數就有值

 

 ref修飾符

   如果希望方法可以對在調用者範圍中聲明的不同資料進行操作(通常改變它的值),例如:排序和交換常式,就需要使用引用參數。

 輸出參數不需要在它們被傳遞給方法之前初始化,因為方法在退出之前必修為輸出參數賦值。

 引用參數必須在它們被傳遞給方法之前初始化,因為是在傳遞一個對已存在變數的引用。

ref例子:

 

 規則:

①聲明一個變數(初始化)

②把參數以ref形式傳遞

③方法裡做操作

 

 

Params修飾符

  C#使用params關鍵字支援參數數組的使用。params關鍵字可以把可變數量的參數(相同類型)  作為單個邏輯參數傳給方法。

 

 

注: 為了避免歧義(多重定義),C#要求方法只支援一個params參數,而且必須是參數列表中的最後一個參數。

 

定義選擇性參數

   選擇性參數就是聲明參數的時候已經賦值了,相同與有個初始值,調用者可以根據需求需不需要改變這個值。

 

 注:選擇性參數的值是確定的而不是由編譯的時候產生的。選擇性參數必須放在方法簽名的最後。

 

 使用具名引數調用方法

   具名引數允許你在調用方法時以任何順序指定參數的值。因此,你可以使用冒號操作符通過名稱來指定 參數。

 

 具名引數配合選擇性參數使用比較有效果。

 

方法重載

   定義了一組名字相同的方法時,它們的參數數量(或類型)不同,這樣的方法就叫做被重載。

 例如:計算兩個數的和,這就相同於一個重載

 

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.