鍍金池/ 教程/ C#/ C#方法
C#屬性(Properties)
C#與Java比較
C#方法
C#枚舉
C#關(guān)鍵字
C# StreamReader類
C#不安全代碼
C#文件(I/O)
C#匿名方法
C#線程同步
C# Thread類
C#主線程
C#數(shù)據(jù)類型
C# FileStream類
C#預(yù)處理指令
C#繼承
C#循環(huán)
C#決策結(jié)構(gòu)
C#集合
C#反射
C#類型轉(zhuǎn)換
C#泛型
C# StringReader類
C#歷史
C#運(yùn)算符重載
C#屬性
C#線程實(shí)例:Sleep()方法
C#線程示例:優(yōu)先級
C#線程實(shí)例:Join()方法
C# BinaryReader類
C#類
C#索引器
C# BinaryWriter類
C#序列化
C#常量和文字
C#程序結(jié)構(gòu)
C#封裝
C#事件
C#可空類型(nullable)
C#基本語法
C#異常處理
C#教程
C#接口
C# System.IO命名空間
C#線程命名實(shí)例
C# StringWriter類
C#線程實(shí)例
C#數(shù)組
C#正則表達(dá)式
C#命名空間
C#反序列化
C#與C++比較
C# TextWriter類
C#多線程
C#字符串
C#是什么?
C#變量
C# FileInfo類
C#線程實(shí)例:Abort()方法
C#結(jié)構(gòu)體
C#運(yùn)算符
C#入門程序
C#多線程生命周期
C# TextReader類
C# DirectoryInfo類
C#委托

C#方法

C#中的方法是一組執(zhí)行任務(wù)的語句。 每個 C# 程序至少有一個類包含一個名稱為Main()的方法。

要使用方法,需要:

  • 定義方法
  • 調(diào)用方法

C# 中定義方法

當(dāng)要定義一個方法時,需要聲明它的結(jié)構(gòu)元素。 C# 中定義方法的語法如下:

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

以下是方法中的各種元素說明:

  • 訪問說明符(Access Specifier):這決定了一個類的變量或方法的可見性。
  • 返回類型(Return type):方法可能返回一個值。返回類型是方法返回的值的數(shù)據(jù)類型。 如果方法沒有返回任何值,則返回類型為void。
  • 方法名稱(Method Name):方法名稱是唯一標(biāo)識符,區(qū)分大小寫。它不能與在類中聲明的任何其他標(biāo)識符相同。
  • 參數(shù)列表(Parameter list):括號內(nèi)的參數(shù)用于從方法傳遞和接收數(shù)據(jù)。參數(shù)列表是指方法參數(shù)的類型,順序和編號。參數(shù)是可選的; 也就是說,方法可能不使用參數(shù)。
  • 方法體(Method body):這包含完成所需操作的一組代碼語句和具體實(shí)現(xiàn)。

例子

以下代碼片段顯示了一個函數(shù)FindMax,它使用兩個整數(shù)值,并返回兩者中較大的一個。 它具有公共訪問說明符,因此可以使用類的實(shí)例從類外部訪問它。

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# 中的調(diào)用方法

可以使用方法的名稱調(diào)用方法。以下示例說明了這一點(diǎn):

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();
      }
   }
}

當(dāng)編譯和執(zhí)行上述代碼時,會產(chǎn)生以下結(jié)果:

Max value is : 199

還可以使用該類的實(shí)例從其他類調(diào)用public方法。 例如,FindMax方法屬于NumberManipulator類的成員,可以從另一個類Test中調(diào)用它。

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();
      }
   }
}

當(dāng)編譯和執(zhí)行上述代碼時,會產(chǎn)生以下結(jié)果:

Max value is : 200

遞歸方法調(diào)用

遞歸方法是一種可以調(diào)用自身的方法。以下是使用遞歸函數(shù)來計算給定數(shù)值的階乘的示例:

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();
      }
   }
}

當(dāng)編譯和執(zhí)行上述代碼時,會產(chǎn)生以下結(jié)果:

Factorial of 6 is: 720
Factorial of 7 is: 5040
Factorial of 8 is: 40320

將參數(shù)傳遞給方法

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

機(jī)制 簡介
按值傳遞參數(shù) 將參數(shù)的實(shí)際值復(fù)制到函數(shù)的形式參數(shù)中。在函數(shù)內(nèi)對參數(shù)所做的更改對參數(shù)沒有影響。
按引用傳遞參數(shù) 將對參數(shù)的內(nèi)存位置的引用復(fù)制到形式參數(shù)中,在函數(shù)內(nèi)對參數(shù)的更改會影響參數(shù)值。
輸出參數(shù) 此方法用于返回多個值。

上一篇:C#入門程序下一篇:C#主線程