如何将方法(method)为一个的?

摘要:✅ CLR via C# 第八章总结:方法(Methods) 📌 1. 方法定义基础 方法是类行为的表现,用于封装逻辑。 语法结构: [访问修饰符] [static] [返回类型] 方法名([参数列表]) {
✅ 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>