Csharp 简明教程

C

方法是一组共同执行任务的代码段。每个 C# 程序都至少有一个包含名为 Main 的方法的类。

要在方法中使用,你需要——

  1. Define the method

  2. Call the method

Defining Methods in C

当你定义方法时,基本上就声明了其结构的元素。C# 中定义方法的语法如下——

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

以下是方法的各种元素——

  1. Access Specifier − 这将确定变量或方法在另一个类中的可见性。

  2. Return type − 方法可能返回一个值。返回值类型是方法返回的值的数据类型。如果方法没有返回任何值,则返回类型为 void

  3. Method name − 方法名是唯一标识符,而且区分大小写。它不可以与类中声明的任何其他标识符相同。

  4. Parameter list − 用括号括起来,参数用于从方法传递和接收数据。参数列表表示方法的参数类型、顺序和数量。参数是可选的;也就是说,方法可能不包含任何参数。

  5. Method body − 这包含完成所需的活动所需的一组指令。

Example

以下代码片段展示了一个函数 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;
   }
   ...
}

Calling Methods in 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 类,你可以从另一个类 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

Recursive Method Call

方法可以自己调用自己。这称为 recursion 。以下是使用递归函数计算给定数字阶乘的示例——

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

Passing Parameters to a Method

当带参数的方法被调用时,需要将参数传递到方法中。有三种方式可以将参数传递到方法中 -

Sr.No.

Mechanism & Description

1

Value parameters 此方法将实参的实际值复制到函数的形式参数中。在这种情况下,在函数中对参数所做的更改不会对实参产生影响。

2

Reference parameters 此方法将对实参的内存位置的引用复制到形式参数中。这意味着对参数所做的更改会影响实参。

3

Output parameters 此方法有助于返回值不止一个。