八、方法(method)
✅ CLR via C# 第八章总结:方法(Methods)
📌 1. 方法定义基础
- 方法是类行为的表现,用于封装逻辑。
- 语法结构:
[访问修饰符] [static] [返回类型] 方法名([参数列表])
{
// 方法体
}
📌 2. 参数传递方式
✅ 值传递(默认):
方法获得的是变量的副本,不影响原值。
void Foo(int x) { x++; }
✅ 引用传递(ref):
方法可修改原值,必须在调用前初始化。
void Foo(ref int x) { x++; }
✅ 输出参数(out):
方法内部必须赋值,调用时可未初始化。
void Bar(out int x) { x = 10; }
✅ 可变参数(params):
接收不定数量的参数,等价数组。
void Print(params int[] numbers) { ... }
📌 3. 局部函数(Local Functions)
- 可定义在另一个方法内部,仅供内部使用
void Outer() {
void Inner() { Console.WriteLine("内部方法"); }
Inner();
}
📌 4. 可选参数 & 命名参数
✅ 可选参数
提供默认值:
void Greet(string name = "Guest") { ... }
✅ 命名参数
允许按名称传参,顺序无关:
Greet(name: "Alice");
📌 5. 方法重载(Overloading)
- 相同方法名,参数签名不同
void Print(int x) { ... }
void Print(string s) { ... }
📌 Mermaid 图示:方法概念总览
graph TD
A[方法] --> B[值传递]
A --> C[ref]
A --> D[out]
A --> E[params]
A --> F[局部函数]
A --> G[重载]
A --> H[可选/命名参数]
🧠 面试题 & 解析(不少于5题)
1️⃣ ref vs out 有何区别?
✅ ref 要求变量已初始化,out 不需要;方法中 out 必须赋值。
2️⃣ params 参数的使用限制?
- 必须是最后一个参数
- 只能有一个
params - 不能与
ref/out共用
3️⃣ void、Task、Task<T> 区别?
| 返回类型 | 用途 |
|---|---|
void |
普通同步方法 |
Task |
异步方法无返回 |
Task<T> |
异步方法有返回值 |
4️⃣ 方法重载 vs 方法重写?
| 概念 | 作用 | 关键词 |
|---|---|---|
| 重载 | 同类中方法名相同、参数不同 | 无需关键词 |
| 重写 | 子类中重写父类虚方法 | virtual + override |
5️⃣ 局部函数用途?
- 封装仅在该方法内部使用的小逻辑
- 减少代码冗余,提高代码可读性
✅ 总结表格
| 概念 | 关键点 |
|---|---|
| 参数传递方式 | 值、ref、out、params |
| 方法重载 | 相同方法名、参数签名不同 |
| 局部函数 | 方法内部定义方法 |
| 可选/命名参数 | 提高调用灵活性、可读性 |
| 返回类型设计 | void、Task、Task<T> |
点赞鼓励下,(づ ̄3 ̄)づ╭❤~
作者:世纪末的魔术师
出处:https://www.cnblogs.com/Firepad-magic/
Unity最受欢迎插件推荐:点击查看
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

浙公网安备 33010602011771号