显示页面讨论反向链接回到顶部 本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。 ====== C# 中 => 运算符的用法 ====== 在 C# 中,''=>'' 读作 "goes to"(转到),主要用于将左侧的输入参数与右侧的执行代码块或表达式分开。 ===== 1. Lambda 表达式 (Lambda Expressions) ===== Lambda 表达式是一种匿名函数,常用于 LINQ 查询或作为委托(Delegate)的参数。 ^ 语法结构 | ''(输入参数) => 表达式或语句块'' | ==== 1.1 表达式 Lambda (Expression Lambda) ==== 右侧是一个表达式,返回表达式的结果。 <code csharp> // 定义一个委托,接收 int 返回 int Func<int, int> square = x => x * x; Console.WriteLine(square(5)); // 输出 25 </code> ==== 1.2 语句 Lambda (Statement Lambda) ==== 右侧是一个代码块(包含在大括号中),可以包含多条语句。 <code csharp> Action<string> greet = name => { string greeting = $"Hello, {name}!"; Console.WriteLine(greeting); }; greet("World"); // 输出 Hello, World! </code> ==== 1.3 多个参数 ==== 当有多个参数时,必须使用括号。 <code csharp> Func<int, int, int> add = (x, y) => x + y; int result = add(3, 4); // 结果为 7 </code> ===== 2. 表达式主体定义 (Expression-bodied definitions) ===== 从 C# 6.0 开始,可以使用 ''=>'' 来简化类成员(方法、属性、构造函数等)的定义,使代码更简洁。 ==== 2.1 方法 (Methods) ==== 如果方法只有一条语句,可以省略大括号和 ''return'' 关键字。 <code csharp> public class Person { public string FirstName { get; set; } public string LastName { get; set; } // 传统写法 // public override string ToString() // { // return $"{FirstName} {LastName}"; // } // 使用 => 简化 public override string ToString() => $"{FirstName} {LastName}"; } </code> ==== 2.2 只读属性 (Read-only Properties) ==== 用于简化只有 ''get'' 访问器的属性。 <code csharp> public class Circle { public double Radius { get; set; } // 自动计算属性 public double Area => Math.PI * Radius * Radius; } </code> ==== 2.3 属性访问器 (Property Accessors) ==== 从 C# 7.0 开始,可以用于 ''get'' 和 ''set'' 访问器。 <code csharp> private string _name; public string Name { get => _name; set => _name = value; // 简单的赋值 } </code> ==== 2.4 构造函数与析构函数 (Constructors & Finalizers) ==== 如果构造函数逻辑很简单,也可以使用。 <code csharp> public class User { public string Name { get; } // 构造函数 public User(string name) => Name = name; } </code> ===== 3. switch 表达式 (Switch Expressions) ===== 从 C# 8.0 开始,''=>'' 用于 switch 表达式的分支匹配,这比传统的 ''case : break;'' 写法更紧凑。 <code csharp> public string GetColorName(int colorId) { return colorId switch { 1 => "Red", 2 => "Green", 3 => "Blue", _ => "Unknown" // _ 代表 default }; } </code> ===== 总结 ===== | 用法场景 | 示例 | 说明 | | **Lambda 表达式** | ''x => x + 1'' | 用于 LINQ 或委托,表示输入 x,返回 x+1 | | **表达式主体成员** | ''public int Age => 18;'' | 简化只有一行代码的方法或属性 | | **Switch 表达式** | ''1 => "One"'' | 用于模式匹配,表示如果匹配 1,则结果为 "One" | 登录 Detach Close 该主题尚不存在 您访问的页面并不存在。如果允许,您可以使用创建该页面按钮来创建它。 csharp/系统关键词.txt 最后更改: 2026/01/07 16:34由 张叶安 登录