9.1 方法定义
基本语法
1 | 访问修饰符 返回类型 方法名 (参数列表) |
示例
1 | // 无参数无返回值 |
9.2 参数传递
值参数(默认)
1 | void Modify(int x) |
ref 参数(引用传递)
1 | void Swap(ref int a, ref int b) |
out 参数(输出参数)
1 | void GetMinMax(int[] numbers, out int min, out int max) |
TryParse 模式
1 | bool TryParseInt(string input, out int result) |
9.3 in 参数(C# 7.2+)
1 | // in 参数只读引用,避免复制大结构体 |
9.4 方法重载
定义重载
1 | // 同名不同参数 |
重载规则
1 | // 合法重载:参数类型不同 |
9.5 可选参数
1 | void Greet(string name, string greeting = "Hello") |
注意事项
1 | // 可选参数必须在最后 |
9.6 命名参数
1 | void CreateUser(string name, int age, string email) |
9.7 局部函数
1 | void ProcessData() |
9.8 表达式体方法
1 | // 传统写法 |
9.9 方法最佳实践
1. 单一职责
1 | // 不推荐:一个方法做太多事 |
2. 参数数量
1 | // 不推荐:参数过多 |
3. 命名规范
1 | // 方法名使用 PascalCase |
9.10 本章小结
- 方法由访问修饰符、返回类型、名称、参数组成
- 值参数复制值,ref/out 传递引用
- out 参数必须在方法内赋值
- 方法重载通过参数类型/数量区分
- 可选参数和命名参数提高调用灵活性
- 局部函数用于辅助逻辑
- 表达式体简化简单方法
练习题
- 编写方法计算数组平均值
- 使用 out 参数实现除法(返回商和余数)
- 创建重载方法支持不同参数类型
- 以下代码输出什么?
1
2
3
4void Modify(ref int x) { x = 100; }
int a = 10;
Modify(ref a);
Console.WriteLine(a);