C#基础教程:第三章:方法与函数

1. 方法的定义与调用

方法是执行特定任务的代码块,可以被调用多次,从而减少代码重复,提高代码的可读性和维护性。

  • 方法的定义

    csharp 复制代码
    // 无返回值的方法
    void Greet() {
        Console.WriteLine("Hello, World!");
    }
    
    // 有返回值的方法
    int Add(int a, int b) {
        return a + b;
    }
  • 方法的调用

    csharp 复制代码
    Greet(); // 调用无返回值的方法
    
    int sum = Add(5, 3); // 调用有返回值的方法,并将返回值赋给变量sum
    Console.WriteLine(sum); // 输出:8
2. 参数与返回值

方法可以接受参数并返回结果。

  • 带参数的方法

    csharp 复制代码
    void PrintMessage(string message) {
        Console.WriteLine(message);
    }
    
    // 调用带参数的方法
    PrintMessage("Hello, C#!");
  • 有返回值的方法

    csharp 复制代码
    double Multiply(double x, double y) {
        return x * y;
    }
    
    // 调用有返回值的方法
    double result = Multiply(2.5, 4.0);
    Console.WriteLine(result); // 输出:10.0
  • 可选参数和参数默认值

    csharp 复制代码
    void DisplayInfo(string name, int age = 30) {
        Console.WriteLine($"Name: {name}, Age: {age}");
    }
    
    // 调用带可选参数的方法
    DisplayInfo("Alice"); // 输出:Name: Alice, Age: 30
    DisplayInfo("Bob", 25); // 输出:Name: Bob, Age: 25
3. 方法重载

方法重载是指在同一个类中可以定义多个具有相同名称但参数列表不同的方法。

  • 方法重载的示例

    csharp 复制代码
    void Display(int a) {
        Console.WriteLine($"Integer: {a}");
    }
    
    void Display(double a) {
        Console.WriteLine($"Double: {a}");
    }
    
    void Display(string a) {
        Console.WriteLine($"String: {a}");
    }
    
    // 调用重载的方法
    Display(5); // 输出:Integer: 5
    Display(3.14); // 输出:Double: 3.14
    Display("Hello"); // 输出:String: Hello
4. 递归

递归是方法调用自身的编程技巧,用于解决分解为类似子问题的问题。

  • 递归方法的示例
    • 计算阶乘

      csharp 复制代码
      int Factorial(int n) {
          if (n <= 1) {
              return 1; // 基本情况:n为1或更小
          } else {
              return n * Factorial(n - 1); // 递归情况:n * (n-1)!
          }
      }
      
      // 调用递归方法
      int result = Factorial(5);
      Console.WriteLine(result); // 输出:120
    • 斐波那契数列

      csharp 复制代码
      int Fibonacci(int n) {
          if (n <= 1) {
              return n; // 基本情况:n为0或1
          } else {
              return Fibonacci(n - 1) + Fibonacci(n - 2); // 递归情况:前两个数之和
          }
      }
      
      // 调用递归方法
      int fib = Fibonacci(6);
      Console.WriteLine(fib); // 输出:8
相关推荐
吃一碗粉只付一碗钱16 小时前
12-给SPA友好的401和403响应
c#·状态模式
ClickHouseDB16 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
第九序言T16 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
m0_6399069416 小时前
Redis入门|五种数据结构、使用场景、持久化RDB&AOF
数据结构·数据库·redis
时间售卖铺17 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
qetfw17 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
龙亘川18 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
程序喵大人18 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型
Raas10018 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
数智园区合作社18 小时前
问数平台怎么把同一个指标锁成一个数
大数据·数据库·人工智能·ai