首页/ 第 5 章 · C# 编程基础/ 第 62 课
LESSON 62 · C# 编程基础

方法参数与返回值

参数与返回值已掌握。下一课进入面向对象:类与对象。

⏱ 约 14 分钟📊 难度:入门🗂 第 5 章 · C# 编程基础📍 第 62 / 300 课
课程进度
62 / 300

🎯本节学习目标

  • 掌握参数传递
  • 掌握 return 返回值
  • 了解方法重载

🚀课程导读

上节课的方法只会“自说自话”。有了参数,方法能“按需处理不同数据”;有了返回值,方法能“把结果交回来”。

方法参数

给方法“喂数据”。

  1. 参数在方法名后的括号里声明:void Greet(string name) { Debug.Log("你好," + name); }
  2. 调用时传入实参:Greet("小明"); Greet("小红");
  3. 可声明多个参数,用逗号分隔:void Attack(int damage, string target) { ... }
  4. 调用:Attack(10, "怪物");
  5. 参数的类型、顺序必须与定义一致。
  6. 【可选参数】给参数默认值:void Show(int a, int b = 5) —— 调用 Show(3) 时 b 自动为 5。
  7. 【参数作用域】参数只在方法内部有效。
💡
参数让方法通用:一个方法处理所有玩家,而不是给每个玩家写一个方法。

返回值 return

方法“交回结果”。

  1. 返回类型不再是 void,而是要返回的类型:int Add(int a, int b) { return a + b; }
  2. 方法体内用 return 返回结果;执行到 return 立即结束方法。
  3. 调用时把结果接住:int result = Add(3, 4); // result = 7
  4. 返回类型为 void 时不能用 return 带值,但可以裸 return 提前结束方法。
  5. 【返回字符串】string GetName() { return "英雄"; }
  6. 【多个返回点】if 分支里各自 return。
  7. 例:string GetRank(int s) { if (s >= 90) return "S"; if (s >= 60) return "B"; return "F"; }
⚠️
有返回类型的方法,所有分支都必须有 return,否则编译报错。

方法重载与实战

同名方法不同参数。

  1. 方法重载(Overload):同一个类里允许同名方法,但参数列表必须不同(数量或类型)。
  2. 例:void Heal(int amount) { ... } 和 void Heal(int amount, float rate) { ... } 同时存在合法。
  3. 调用时根据传入参数自动选择对应版本。
  4. 【实战】新建脚本 MethodParamDemo:
  5. int Add(int a, int b) { return a + b; }
  6. float Add(float a, float b) { return a + b; } // 重载
  7. void TakeDamage(int dmg) { hp -= dmg; Debug.Log("剩余:" + hp); }
  8. int hp = 100;
  9. 在 Start 里:Debug.Log(Add(3, 4)); Debug.Log(Add(1.5f, 2.5f)); TakeDamage(30);
  10. 播放查看输出,体会参数、返回值与重载。
好的方法“黑盒化”:调用方只需关心输入与输出,不用管内部实现。

常见错误与排查

错误:报错:并非所有代码路径都返回值?
原因:某些分支没有 return
解决:检查所有分支(尤其 else)都补上 return。

动手练习

课后小任务(做出来才算真的学会)

  • 写一个带参数方法:给任意名字打招呼
  • 写一个计算面积并返回 float 的方法
  • 为你的方法写一个重载版本

本节小结

参数与返回值已掌握。下一课进入面向对象:类与对象。

完成打卡后,主站会实时更新你的学习进度 🎯

← 上一课方法(函数)的定义与调用