C#文法複習2

來源:互聯網
上載者:User

標籤:style   blog   http   ar   使用   sp   on   2014   log   

第五章 方法

1、方法是一塊具有名稱的代碼

包括:方法體、方法頭

局部變數必須被賦值才可以執行下面的操作。執行個體變數有隱式初始化。有時候,類型推斷可以用var關鍵字,類似於C++當中的auto。用於局部變數。

C#中,不能在第一個名稱的有效範圍內去聲明另一個同名的本地變數。

2、本地常量:局部常量。Const 關鍵字。Const double PI = 3.1415926; 在編譯期決定其值。

3、 參數:形參與實參。參數也有幾種:值參數/引用參數。

實值型別與值參數是兩種不同的概念:實值型別就是類型本身包含其值。而值參數是把實參的值複製給形參。

Void mymethod(myclass f1, int f2)

{

F1.val += 5;

F2+= 5;

}

調用: mymethod(a1,a2);

執行過程:

方法開始時,系統在棧中為形參分配空間,並從實參複製值。a1為參考型別,所以引用被複製,但指向相同。

在使用引用參數時,必須加關鍵字 ref。 void method(ref int val){ xxxx }, 方法調用 method(ref y);//必須使用變數。

舉例:

Void mymethod(ref myclass f1,ref int f2)

{

F1.val += 5;

F2+= 5;

}

調用: mymethod(ref a1,ref a2);

執行過程:不會開闢新的記憶體單元,只是把形參名設定為實參的別名而已。a1與f1,引用相同的位置。

參考型別作為值參數和引用參數:

我們修改引用參數的成員時,無論是作為值參數還是引用參數,效果都一樣。但,當我們去修改參考型別本身時,那麼其作為值參數與引用參數是不同的。

請看下面的圖形:

4、輸出參數

需要加關鍵字 out

Void mythod(out int val); //形參也是實參的別名,且我們通過方法體之後就會知道你傳入的實參的值。方法體內部會對實參賦值。

5、參數數組

前面是一個實參對應一個形參,現在是多個實參對應一個特殊的形參。

關鍵字:params 比如 void mythod(params int[] vals){ }

調用: int[] arrays = {1, 2 ,3}; mythod(arrays);

調用時,如果是用實值型別傳遞,即實參是值,數組參數是實值型別,實參不受影響。

如果是參考型別傳遞,即實參是數組名,數組參數是參考型別,實參受方法內部影響。

6、方法重載

方法名稱相同,方法特徵不同即可。

7、具名引數

給參數命名,這樣我們可以以任意順序調用。

Void mythod(int a, int b, int c);

參數的名字和值: 調用時指定名稱和值即可。 Mythod(c:2, a:4, b: 1);

8、選擇性參數

就是我們在調用時,可以調用這個參數,也可以省略這個參數。這時,必須在聲明的時候給參數提供預設值。

Void mythod(int a, int b, int c = 2);

先是必填參數+ 選擇性參數+ params 參數。

9、棧幀:就是一個個方法進棧。

C#文法複習2

聯繫我們

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