iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 15
2
自我挑戰組

初心者學C#系列 第 15

Day 15:C#裡面的方法 ( ͡☉ ͜ʖ ͡☉)

  • 分享至 

  • xImage
  •  

※以下內容皆是新手撰寫,內容可能不完全正確

轉眼間就發到第十五天了呢,一日一顏文字 :D 看得懂英文內容的文章還是很實用的,畢竟網路上好多優質的免費教學跟補充資料是英文的,不看很可惜(即使偶爾會碰到幾個不熟悉的單字)。有些東西沒有一個確切的中文翻譯,於是我盡量用好懂且合理(?)的方法翻了。

今天講的是C#裡的 方法(methods) ,之前的許多範例和小練習中都有用到,只是沒有詳細說明方法的特質跟用處。方法是可以執行某動作/工作的一組敘述,C#寫出的每個程式至少都會有個名為Main( )的方法在某類別(class)裡面。用一個方法,得 (1)定義方法(2)呼叫那個方法

用C#定義方法
定義一個方法 = 宣告方法的結構。以下面兩個方法為例,講方法的幾個元素:

public void numbers()
        {
            height = 5;
            width = 5;
            length = 5;
        }
public int value()
        { 
return height * length * width; 
}
  • 存取規格符(access specifier) :前一篇講過的public、private那些,影響其他類別存取某方法的權限;這邊兩個都是public。

  • 傳回型別/屬性(return type):方法可能傳回一個值,傳回型別則是標示傳回值的屬性。若方法不會傳回任何值,就標示void。這裡numbers( )的傳回屬性是void,value( )的傳回屬性是int。

  • 方法名稱(method name) :方法的名稱,大小寫有差,一個類別裡不能有兩個相同的方法名稱。這裡的兩個方法名稱分別是numbers跟value。

  • 參數串列(parameter list) :參數寫在方法名稱後面的括號裡,用來表示參數的次序、屬性及數量,而括號裡面也可以什麼都不寫,像上面的numbers( )跟value( )。

  • 方法本體(method body) :方法執行動作的內容,如value( )裡的return height * length * width;。

用C#呼叫方法
以下是如何在別的類別中呼叫其他類別的方法;calcube類別裡呼叫剛剛的numbers( ),程式就會跑出numbers( )這個發法負責處理(?)的東西。

class calcube
    {
        static void Main(string[] args)	
        {
            Cube c = new Cube();
            c.numbers();
            c.calc();
            Console.ReadLine();
        }
    }

遞迴式呼叫方法(recursive method call) :一個方法也可以呼叫自己,像這樣:

public int value( )
{
	value y = new value( );
} 

參數的傳遞(passing parameters to a method)
三個把參數遞給方法的方法:

  1. 值參數(value parameters):這是一般給方法參數的方式,每個參數都會多一個新的儲存位置。
public int valueP(int a, int b)
  1. 引用參數(reference parameters):引用參數不會多一個新的儲存位置,而是指引到那某個變數本身的位置,用ref關鍵字表示。
public int referenceP(ref int j, ref int k)
  1. 輸出參數(output parameters):
    return可以讓一個函數傳回一個值,但用輸出參數則能傳回兩個值,是個把資料從方法傳出去的用法。
public void outputP(out int z)

累啊,話說今天颱風天(ˊˇˋ) 下一篇要講的是可為null的型別喔~

參考資料:
(a) Tutorialspoint; C# - Methods
https://www.tutorialspoint.com/csharp/csharp_methods.htm


上一篇
Day 14:C#的封裝 /╲/( ͡° ͡° ͜ʖ ͡° ͡°)/\╱\
下一篇
Day 16:C#中可為Null的型別 (`フ´) #
系列文
初心者學C#30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言