位置:首页 > 高级语言 > 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#,有一些参数可传递给一个方法有三种方法:

机制 描述
值参数 这种方法复制一个参数的实际值到函数的形式参数。在这种情况下,参数在函数内变化对参数没有影响。
引用参数 这种方法复制引用参数的内存位置成形式参数。这意味着,对参数所做的更改会影响参数。
输出参数 该方法有助于函数返回多个值。