主页
  • 主页
  • 分类
  • 热文
  • 教程
  • 面试
  • 标签
C#

C# 基础

C# 主页
C# 概述
C# 环境
C# 程序结构
C# 基本语法
C# 数据类型
C# 类型转换
C# 变量
C# 常量
C# 运算符
C# 决策结构
C# 循环结构
C# 封装
C# 方法
C# 可空类型
C# 数组
C# 字符串
C# 结构体
C# 枚举
C# 类
C# 继承
C# 多态性
C# 操作符重载
C# 接口
C# 命名空间
C# 预处理
C# 正则表达式
C# 异常
C# 文件与流

C# 高级

C# 属性(Attributes)
C# 反射
C# 属性(Properties)
C# 索引器
C# 委托
C# 事件
C# 集合
C# 泛型
C# 匿名方法
C# 不安全代码
C# 线程

基础

C# 主页
C# 概述
C# 环境
C# 程序结构
C# 基本语法
C# 数据类型
C# 类型转换
C# 变量
C# 常量
C# 运算符
C# 决策结构
C# 循环结构
C# 封装
C# 方法
C# 可空类型
C# 数组
C# 字符串
C# 结构体
C# 枚举
C# 类
C# 继承
C# 多态性
C# 操作符重载
C# 接口
C# 命名空间
C# 预处理
C# 正则表达式
C# 异常
C# 文件与流

高级

C# 属性(Attributes)
C# 反射
C# 属性(Properties)
C# 索引器
C# 委托
C# 事件
C# 集合
C# 泛型
C# 匿名方法
C# 不安全代码
C# 线程

C# 方法


上一章 下一章

方法是一组一起执行特定任务的语句。每一个 C# 程序至少包含一个带有名为 Main 的方法的类。

要使用一个方法,你需要做两件事:

  1. 定义方法
  2. 调用方法

在 C# 中定义方法

当你定义一个方法时,实际上是声明了它的结构元素。在 C# 中定义方法的语法如下:

<访问修饰符> <返回类型> <方法名称>(参数列表) {
   方法体
}

以下是方法的各个组成部分:

  • 访问修饰符 — 这决定了一个变量或方法从另一个类的可见性。
  • 返回类型 — 方法可能返回一个值。返回类型是方法返回的值的数据类型。如果方法不返回任何值,则返回类型是 void。
  • 方法名称 — 方法名称是一个唯一的标识符并且对大小写敏感。它不能与类中声明的任何其他标识符相同。
  • 参数列表 — 包含在括号中的参数用于向方法传递和接收数据。参数列表指的是方法的类型、顺序和数量。参数是可选的,即方法可以不包含任何参数。
  • 方法体 — 包含完成所需活动所需的指令集。

示例

下面的代码片段展示了一个名为 FindMax 的函数,它接受两个整数值并返回较大的那个。它有 public 访问修饰符,因此可以使用类的实例从类外部访问它。

class NumberManipulator {

   public int FindMax(int num1, int num2) {
      /* 局部变量声明 */
      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) {
         /* 局部变量声明 */
         int result;
         
         if (num1 > num2)
            result = num1;
         else
            result = num2;
         return result;
      }
      
      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("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) {
         /* 局部变量声明 */
         int result;
         
         if(num1 > num2)
            result = num1;
         else
            result = num2;
         
         return result;
      }
   }
   class Test {
      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("Max value is : {0}", ret );
         Console.ReadLine();
      }
   }
}

当上述代码被编译和执行时,它会产生以下结果:

Max value is : 200

递归方法调用

方法可以调用自身。这种情况称为递归。下面是一个使用递归函数计算给定数字阶乘的例子:

示例代码

using System;

namespace CalculatorApplication {
   class NumberManipulator {
      public int factorial(int num) {
         /* 局部变量声明 */
         int result;
         if (num == 1) {
            return 1;
         } else {
            result = factorial(num - 1) * num;
            return result;
         }
      }
      static void Main(string[] args) {
         NumberManipulator n = new NumberManipulator();
         // 调用 factorial 方法
         Console.WriteLine("Factorial of 7 is : {0}", n.factorial(7));
         Console.WriteLine("Factorial of 8 is : {0}", n.factorial(8));
         Console.ReadLine();
      }
   }
}

当上述代码被编译和执行时,它会产生以下结果:

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

向方法传递参数

当调用带有参数的方法时,你需要向方法传递参数。参数可以通过以下三种方式传递给方法:

  1. 值参数

    • 这种方法将实际参数的值复制到函数的形式参数中。在这种情况下,在函数内部对参数所做的更改不会影响原始参数。
  2. 引用参数

    • 这种方法将实际参数的内存位置的引用复制到形式参数中。这意味着对参数的更改会影响原始参数。
  3. 输出参数

    • 这种方法有助于返回多个值。
上一章 下一章
阅读号二维码

关注阅读号

联系二维码

联系我们

© 2024 Yoagoa. All rights reserved.

粤ICP备18007391号

站点地图