關於C#中方法的闡述

Y2J
發布: 2017-04-24 11:31:40
原創
1379 人瀏覽過

前言:

#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只能出現一次而且是出現在參數中的最後一個。

#

以上是關於C#中方法的闡述的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
c#
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!