目录

C方法之详解

C#方法之详解

一、方法基础语法‌

C#方法是封装代码逻辑的基本单元,用于执行特定操作并支持模块化编程‌。

  1. 定义与结构‌

    C#方法由访问修饰符、返回值、方法名、参数列表和方法体构成。基础语法如下:

[访问修饰符] [static] 返回值类型 方法名(参数列表)  
{  
    // 方法体  
}  
  • 访问修饰符‌:public、private 等控制方法可见性,默认类内方法为 private‌。
  • 返回值‌:无返回值时使用 void,否则需声明具体类型(如 int、string)‌。
  1. 参数传递‌
  • 值类型与引用类型‌:值类型参数传递副本,引用类型(如类对象)传递内存地址‌。
  • ‌可选参数‌:通过默认值实现,调用时可省略:
public void Print(string text, bool isBold = false) { ... }  
Print("Hello"); // 自动使用 isBold = false  
  • ‌命名参数‌:调用时指定参数名,提高可读性:
Print(isBold: true, text: "Warning");  
  • 可变参数‌:使用 params 接收数组:
public int Sum(params int[] numbers) { ... }  
Sum(1, 2, 3);  

二、方法重载与特殊类型‌

  1. 方法重载‌

    同一类中允许定义多个同名方法,‌参数列表必须不同‌(类型、数量或顺序):

public void Log(int code) { ... }  
public void Log(string message) { ... } // 合法重载  

注:返回值类型不参与重载判定‌。

  1. 静态方法‌
  • 使用 static 修饰,直接通过类名调用,无需实例化对象‌46。
  • 示例:
public static class MathUtils  
{  
    public static int Add(int a, int b) => a + b;  
}  
int sum = MathUtils.Add(3, 5);  
  1. 扩展方法‌

    通过 this 关键字为现有类型添加新方法,需在静态类中定义:

public static class StringExtensions  
{  
    public static bool IsNumeric(this string str)  
    {  
        return int.TryParse(str, out _);  
    }  
}  
bool result = "123".IsNumeric(); // 返回 true  
  1. 构造函数‌

    用于初始化对象,与类同名且无返回值:

public class Person  
{  
    public string Name { get; set; }  
    public Person(string name) => Name = name;  
}  

三、高级方法特性‌

  1. 异步方法‌

    使用 async/await 实现非阻塞操作,适用于I/O密集型任务:

public async Task<string> FetchDataAsync(string url)  
{  
    HttpClient client = new HttpClient();  
    return await client.GetStringAsync(url);  
}  

注:异步方法需返回 Task 或 Task 类型‌。

  1. ‌Lambda表达式‌

    简化匿名方法的定义:

Func<int, int> square = x => x * x;  
Console.WriteLine(square(5)); // 输出 25  
  1. ‌递归方法‌

    方法直接或间接调用自身,需注意终止条件:

public int Factorial(int n)  
{  
    if (n == 0) return 1;  
    return n * Factorial(n - 1);  
}  

四、使用建议

  1. 代码规范‌
  • 单一职责原则‌:每个方法仅完成一个明确任务‌。
  • 命名清晰‌:方法名使用动词短语(如 CalculateTax、ValidateInput)。