优秀的编程知识分享平台

网站首页 > 技术文章 正文

函数/方法(7-3)-C#编程零基础到入门学习

nanyue 2024-07-19 23:57:07 技术文章 31 ℃

在C#编程语言中,方法是执行特定任务的代码块。方法可以有参数,这些参数提供了方法需要操作的值。方法也可以有返回值,这是方法执行的结果。

一个方法是把一些相关的语句组织在一起,用来执行一个任务的语句块。每一个 C# 程序至少有一个带有 Main 方法的类。

方法的格式

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

方法的各个元素:

当定义一个方法时,从根本上说是在声明它的结构的元素。

  • Access Specifier:访问修饰符,这个决定了变量或方法对于另一个类的可见性。
  • Return type:返回类型,一个方法可以返回一个值。返回类型是方法返回的值的数据类型。如果方法不返回任何值,则返回类型为 void。
  • Method name:方法名称,是一个唯一的标识符,且是大小写敏感的。它不能与类中声明的其他标识符相同。
  • Parameter list:参数列表,使用圆括号括起来,该参数是用来传递和接收方法的数据。参数列表是指方法的参数类型、顺序和数量。参数是可选的,也就是说,一个方法可能不包含参数。
  • Method body:方法主体,包含了完成任务所需的指令集。

定义方法

定义一个函数 FindMax,它接受两个整数值,并返回两个中的较大值。它有 public 访问修饰符,所以它可以使用类的实例从类的外部进行访问。

      class NumberManipulator
      {
         public int FindMax(int num1, int num2)
         {
            /* 局部变量声明 */
            int result;
            if (num1 > num2)
               result = num1;
            else
               result = num2;
            return result;
         }
         ...
      }

一般调用方法

完整代码示例1:

using System;
using System.Collections.Generic;

namespace MethodUse1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            /* 局部变量定义 */
            int a = 100;
            int b = 200;
            int ret;
            NumberManipulator n = new NumberManipulator();
            //调用 FindMax 方法
            ret = n.FindMax(a, b);
            Console.WriteLine("最大值是: {0}", ret);
        }
    }
    class NumberManipulator
    {
        public int FindMax(int num1, int num2)
        {
            /* 局部变量声明 */
            int result;
            if (num1 > num2)
                result = num1;
            else
                result = num2;
            return result;
        }
    }
}

使用类的实例从另一个类中调用其他类的公有方法。例如,方法 FindMax 属于 NumberManipulator 类,您可以从另一个类 Test 中调用它。

完整代码示例2:

using System;
using System.Collections.Generic;

namespace MethodUse3
{
    internal class Program
    {
        static void Main(string[] args)
        {
            ClassA classAInstance = new ClassA();
            classAInstance.CallPublicMethodInClassB();  // 这将调用ClassB的公有方法并打印出"Public method in ClassB."  
        }

    }
    // 类A  
    public class ClassA
    {
        public void CallPublicMethodInClassB()
        {
            // 创建ClassB的实例  
            ClassB classBInstance = new ClassB();

            // 调用ClassB的公有方法  
            classBInstance.PublicMethod();
        }
    }
    // 类B
    public class ClassB
    {
        public void PublicMethod()
        {
            Console.WriteLine("Public method in ClassB.");
        }
    }
}

递归方法调用

一个方法可以自我调用。这就是递归。

模拟场景:

请使用递归函数计算数的阶乘。给定数字(6,7,8,9)。

完整示例代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MethodUse4
{
    internal class Program
    {
        static void Main(string[] args)
        {
            NumberManipulator n = new NumberManipulator();//Number Manipulator操作数字
            //调用 factorial 方法
            Console.WriteLine("6 的阶乘是: {0}", n.factorial(6));
            Console.WriteLine("7 的阶乘是: {0}", n.factorial(7));
            Console.WriteLine("8 的阶乘是: {0}", n.factorial(8));
            Console.WriteLine("9 的阶乘是: {0}", n.factorial(9));
        }
    }
    class NumberManipulator
    {
        public int factorial(int num)//factorial阶乘
        {
            /* 局部变量定义 */
            int result;
            if (num == 1)
            {
                return 1;
            }
            else
            {
                result = factorial(num - 1) * num;
                return result;
            }
        }
    }
}
最近发表
标签列表