C# 十七、方法/函式
阿新 • • 發佈:2018-12-20
概念:
- 一個方法是把一些相關的語句組織在一起,用來執行一個任務的語句塊。
- 每一個 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);
}
}