位置:首頁 > 高級語言 > C#教學 > C#方法

C#方法

一種方法是一組一起執行任務語句。每一個C#程序都至少有一個類使用一個名為Main方法。

要使用方法,您需要:

  • 定義方法

  • 調用方法

在C#中定義方法

當你定義一個方法,聲明它的基本結構元素。在C#定義方法的語法如下:

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

下麵是一個方法的各種元素:

  • 訪問限定符: 這決定了一個變量的可視性或從其他類中的方法。

  • 返回類型: 方法可能會返回一個值。返回類型是該方法返回值的數據類型。如果方法不返回任何值,則返回類型為void。

  • 方法名稱:方法名是一個唯一的標識符,它是區分大小寫。它不可能類中聲明的任何其它標識符相同。

  • 參數列表:括號之間是封閉的,所述參數用於從一個方法傳遞和接收數據。參數列表指的類型,順序和數量的方法的參數。參數是可選的;也就是說,一種方法可包含任何參數。

  • 方法體:這包含了一組以完成活動所需要的指令。

例子:

下麵的代碼片段展示了一個函數FindMax,這需要兩個整數參數並返回兩個值的較大值。它使用public訪問說明符,因此它可以從類的外部使用類的一個實例進行訪問。

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 = 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

也可以通過使用類的實例調用其他類的公共方法。例如,FindMax屬於NumberManipulator類中的方法,可以從另一個類測試調用它。

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

將參數傳遞給方法

當方法的參數被調用時,需要將參數傳遞給方法。在C#,有一些參數可傳遞給一個方法有三種方法:

機製 描述
值參數 這種方法複製一個參數的實際值到函數的形式參數。在這種情況下,參數在函數內變化對參數冇有影響。
引用參數 這種方法複製引用參數的內存位置成形式參數。這意味著,對參數所做的更改會影響參數。
輸出參數 該方法有助於函數返回多個值。