C#方法
C#中的方法是一組執行任務的語句。 每個 C# 程序至少有一個類包含一個名稱爲Main()
的方法。
要使用方法,需要:
- 定義方法
- 調用方法
C# 中定義方法
當要定義一個方法時,需要聲明它的結構元素。 C# 中定義方法的語法如下:
<Access Specifier> <Return Type> <Method Name>(Parameter List)
{
Method Body
}
以下是方法中的各種元素說明:
- 訪問說明符(Access Specifier):這決定了一個類的變量或方法的可見性。
- 返回類型(Return type):方法可能返回一個值。返回類型是方法返回的值的數據類型。 如果方法沒有返回任何值,則返回類型爲
void
。 - 方法名稱(Method Name):方法名稱是唯一標識符,區分大小寫。它不能與在類中聲明的任何其他標識符相同。
- 參數列表(Parameter list):括號內的參數用於從方法傳遞和接收數據。參數列表是指方法參數的類型,順序和編號。參數是可選的; 也就是說,方法可能不使用參數。
- 方法體(Method body):這包含完成所需操作的一組代碼語句和具體實現。
例子
以下代碼片段顯示了一個函數FindMax
,它使用兩個整數值,並返回兩者中較大的一個。 它具有公共訪問說明符,因此可以使用類的實例從類外部訪問它。
class NumberManipulator
{
public int FindMax(int num1, int num2)
{
/* local variable declaration */
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
...
}
C# 中的調用方法
可以使用方法的名稱調用方法。以下示例說明了這一點:
using System;
namespace CalculatorApplication
{
class NumberManipulator
{
public int FindMax(int num1, int num2)
{
/* local variable declaration */
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
static void Main(string[] args)
{
/* local variable definition */
int a = 101;
int b = 199;
int ret;
NumberManipulator n = new NumberManipulator();
//calling the FindMax method
ret = n.FindMax(a, b);
Console.WriteLine("Max value is : {0}", ret );
Console.ReadLine();
}
}
}
當編譯和執行上述代碼時,會產生以下結果:
Max value is : 199
還可以使用該類的實例從其他類調用public
方法。 例如,FindMax
方法屬於NumberManipulator
類的成員,可以從另一個類Test
中調用它。
using System;
namespace CalculatorApplication
{
class NumberManipulator
{
public int FindMax(int num1, int num2)
{
/* local variable declaration */
int result;
if(num1 > num2)
result = num1;
else
result = num2;
return result;
}
}
class Test
{
static void Main(string[] args)
{
/* local variable definition */
int a = 100;
int b = 200;
int ret;
NumberManipulator n = new NumberManipulator();
//calling the FindMax method
ret = n.FindMax(a, b);
Console.WriteLine("Max value is : {0}", ret );
Console.ReadLine();
}
}
}
當編譯和執行上述代碼時,會產生以下結果:
Max value is : 200
遞歸方法調用
遞歸方法是一種可以調用自身的方法。以下是使用遞歸函數來計算給定數值的階乘的示例:
using System;
namespace CalculatorApplication
{
class NumberManipulator
{
public int factorial(int num)
{
/* local variable declaration */
int result;
if (num == 1)
{
return 1;
}
else
{
result = factorial(num - 1) * num;
return result;
}
}
static void Main(string[] args)
{
NumberManipulator n = new NumberManipulator();
//calling the factorial method
Console.WriteLine("Factorial of 6 is : {0}", n.factorial(6));
Console.WriteLine("Factorial of 7 is : {0}", n.factorial(7));
Console.WriteLine("Factorial of 8 is : {0}", n.factorial(8));
Console.ReadLine();
}
}
}
當編譯和執行上述代碼時,會產生以下結果:
Factorial of 6 is: 720
Factorial of 7 is: 5040
Factorial of 8 is: 40320
將參數傳遞給方法
調用參數的方法時,需要將參數傳遞給方法。有三種方式可以將參數傳遞給方法,分別如下表格中所列:
機制
簡介
按值傳遞參數
將參數的實際值複製到函數的形式參數中。在函數內對參數所做的更改對參數沒有影響。
按引用傳遞參數
將對參數的內存位置的引用複製到形式參數中,在函數內對參數的更改會影響參數值。
輸出參數
此方法用於返回多個值。