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

將參數傳遞給方法

調用參數的方法時,需要將參數傳遞給方法。有三種方式可以將參數傳遞給方法,分別如下表格中所列:

機制

簡介

按值傳遞參數

將參數的實際值複製到函數的形式參數中。在函數內對參數所做的更改對參數沒有影響。

按引用傳遞參數

將對參數的內存位置的引用複製到形式參數中,在函數內對參數的更改會影響參數值。

輸出參數

此方法用於返回多個值。