前言:
C#中的方法在C#編程中經常會用到,那麼什麼是方法,方法怎麼用呢?在這裡總結一下,希望大家能指出我的缺點。
1 什麼是方法
方法是C#中將一堆代碼進行重用的一種機制。方法就是一段代碼,這段代碼可能有輸入的值,可能會傳回值。記得米老師之前講過一個關於方法(函數)的比喻:一個方法就像是一口鍋,而我們的米和水就像參數,把米和水放進鍋裡,然後就能做好飯。方法就是需要我們給它一些參數,然後它可能會給我們一些傳回值。
在.net framework中存在大量的方法,如MessageBox類中的Show方法,Console類中的WriteLine方法、ReadLine方法,Int32的Parse方法,Random類的Next方法。熟練的使用.netframework中的類庫中定義的方法將會使編寫程式更加快捷,迅速。
2方法的定義方式
方法在類或結構中聲明,聲明時,聲明時需要指定存取層級、傳回值、方法名稱以及任何方法參數。方法參數放在括弧中,並用逗號隔開。空括弧表示方法不需要參數。
如:
例1:
public static void SayHello(){ System.Console.WriteLine("Hello,World!");}
例2:
public static int Add(int x,int y) { int z=x+y; return z; }
以上定義了2個普通方法的定義。例1沒有帶參數,而例2帶有2個參數. 如果要將參數傳遞給方法,只需在調用方法時在括弧內提供這些參數即可。對於被調用的方法,傳入的變數稱為“參數”。
方法所接收的參數也是在一組括弧中提供的,但必須指定每個參數的類型和名稱。該名稱不必與參數相同。
3 方法的調用
方法在被調用時只需要注意參數即可,以及方法的傳回值問題。如對例1定義的方法SayHello()進行調用。在另外一個方法內部直接輸入代碼語句SayHello()即可;。如對例2定義的方法Add()進行調用。在另外一個方法內部直接輸入代碼語句
inta = 1, b = 2,c; c = Add(a,b);
4 方法的傳回值
方法可以返回任何類型的值,同樣也可以不返回任何值。傳回值類型在方法的頭部得以體現。
如:方法定義格式:public int Method1(int x,int y)
此時可以看出Method1方法的傳回值類型為int。
而方法的傳回值往往是通過return語句帶過去的。return語句可以終止它出現在其中的方法的執行並將控制返回給調用方法的代碼。如果方法為void類型,則可以省略return語句。可以觀察以下代碼:
publicstatic string GetStr() { string str=string.Empty; return str; str =System.Console.Read().ToString(); }
5.方法的重載
方法重載是讓類以統一的方式處理不同類型資料的一種手段。在C#中,文法規定同一個類中兩個或兩個以上的方法可以用同一個名字,如果出現這種情況,那麼該方法就被稱為重載方法.當一個重載方法被調用時,C#回根據調用該方法的參數自動調用具體的方法來執行.
什麼是方法重載?在面對對象這樣的進階語言中都允許我們在一個類中定義多個方法名相同、方法間參數個數和參數順序不同的方法,對於參數個數不同或者參數列表不同的情況我們稱之為參數列表不同。需要注意的是這裡沒有提到方法的傳回值。也就是決定方法是否構成重載有以下幾個條件:
◆ 在同一個類中;
◆ 方法名相同;
◆ 參數列表不同。
在方法的重載中,顯式優先匹配調用方法是給定的參數個數相同的方法
ref和out不能作為重載的依據,需要使用時只能選其一,不能兩個同時使用
如果參數被ref或out修飾,則參數必須是變數
方法的傳回值不構成重載的條件。
方法的參數個數不同可以構成重載,當方法的參數個數相同是參數的類型不同也可以構成重載。
使用數群組類型作為方法的參數:關鍵字params只能出現一次而且是出現在參數中的最後一個。