Methods 是在类中定义的函数。C# 支持丰富的参数功能——可选/命名参数、ref/out/in 修饰符、params 数组——以及 method overloading(多个同名但不同参数的方法)。
public int Add(int a, int b) => a + b; // expression-bodied (concise)
public string Greet(string name, string greeting = "Hello") // default parameter
{
return $"{greeting}, {name}";
}
Greet("Ann"); // "Hello, Ann"
Greet("Ann", greeting: "Hi"); // named argument
方法指定返回类型、名称和参数。默认参数使参数可选,命名参数允许你按名称传递(更清晰,可以跳过可选参数)。
// ref — pass by reference (method can modify the caller's variable)
void Increment(ref int x) { x++; }
int n = 5; Increment(ref n); // n is now 6
// out — for returning multiple values (must be assigned in the method)
bool TryParse(string s, out int result) { result = ...; return true; }
if (int.TryParse("42", out int value)) { } // the common TryX pattern
// in — pass by reference but READ-ONLY (performance for large structs)
void Process(in LargeStruct data) { }
out 广泛用于 TryParse 模式(安全地返回成功标志和结果);ref 允许修改调用方的变量;in 高效地传递大型结构体而不复制。
// params — variable number of arguments
int Sum(params int[] numbers) => numbers.Sum();
Sum(1, 2, 3, 4); // any number
// OVERLOADING — same name, different parameters
void Print(int x) { }
void Print(string s) { }
void Print(int x, int y) { }
Print(5); // calls the int version — resolved by argument types
重载允许多个方法共享一个名称,通过参数类型/数量区分——编译器选择匹配的那个。params 接受可变数量的参数。
方法是 C# 中行为的构建块,理解其丰富的参数功能对于编写灵活、富有表现力的代码很重要。
了解如何定义方法(包括简洁的 expression-bodied 语法)、使用 默认和命名参数(用于可选参数和可读的调用)以及应用 方法重载(相同名称、不同参数——用于直观的 API,处理不同的参数类型)是日常知识。
参数修饰符特别重要需要理解:out 广泛用于无处不在的 TryParse 模式(int.TryParse(s, out var result) ——安全地返回成功标志和结果而无需异常,一种常见的、习惯的 C# 模式),ref 使修改调用方的变量成为可能,in 通过引用传递大型结构体以提高性能。
理解这些——方法、参数功能(可选/命名/params)、用于灵活 API 的重载,以及 ref/out/in 修饰符(尤其是基于 out 的 TryParse 习语)——对于编写 C# 方法和使用许多依赖这些功能的 .NET API 都是基础知识。
由于方法及其参数是所有 C# 代码的中心,由于重载、可选参数和 TryX 模式等功能不断出现,掌握它们是有效 C# 开发的核心、必知知识。