1. 程式人生 > >C# 十七、方法/函式

C# 十七、方法/函式

概念:

  • 一個方法是把一些相關的語句組織在一起,用來執行一個任務的語句塊。
  • 每一個 C# 程式至少有一個帶有 Main 方法的類。

定義方法

語法格式:

<Access Specifier> <Return Type> <Method Name>(Parameter List)

{

   Method Body

}

訪問修飾符  返回型別  方法名稱(引數列表)

{

        方法主體

}

Access Specifier:訪問修飾符

這個決定了變數或方法對於另一個類的可見性。

Return type:返回型別

一個方法可以返回一個值。返回型別是方法返回的值的資料型別。如果方法不返回任何值,則返回型別為 void。

Method name:方法名稱

是一個唯一的識別符號,且是大小寫敏感的。它不能與類中宣告的其他識別符號相同。

Parameter list:引數列表(此處為形式引數,簡稱形參)

使用圓括號括起來,該引數是用來傳遞和接收方法的資料。引數列表是指方法的引數型別、順序和數量。引數是可選的,也就是說,一個方法可能不包含引數。

Method body:方法主體

包含了完成任務所需的指令集。

呼叫方法

語法格式:

識別符號(引數列表); (此處為實在引數,簡稱實參)

  • 自定義的函式不會自動執行
  • 只有主函式呼叫它才可以執行
  • 它不能呼叫主函式
  • 自定義的函式可以相互呼叫

方法過載

方法簽名:方法識別符號和引數組成。

方法過載:使用相同的名稱和不同的引數來實現。

遞迴

概念:方法呼叫其自身。

遞迴有兩個特點:   

1.遞迴方法一直會呼叫自己直到某些條件滿足,也就是說一定要有出口;

2.遞迴方法有一些引數時,它會把這些新的引數值傳遞給自己;

遞迴通常用於:  ①.階乘  ②.斐波拉切數列

階乘(!):小於某個數的所有正整數的乘積。

  示例:5! = 5*4*3*2*1 = 120

遞迴方法:

static int DG(int i)
{
    if (i == 0)
    {
        return 1;
    }
    return i * DG(i - 1);
}

斐波拉切數列:後一個數加上前一個數,以此類推。

示例1,1,2,3,5,8,13,21,34,55...

遞迴方法:

        static void Main(string[] args)
        {
            for (int a = 1; a < 10; a++)
            {
                Console.WriteLine(Fbnqsl(a));
            }
            Console.ReadKey();
        }

        static int Fbnqsl(int a)
        {
            if (a <= 2)
            {
                return 1;
            }
            else
            {
                return Fbnqsl(a - 1) + Fbnqsl(a - 2);
            }
        }