C#面试题更新 2026-08-05

请解释 C# 中的表达式主体成员(expression-bodied members)是什么,并举例说明它们是如何帮助简化代码的。

技术原理C#

考察说明

考查对 C# 语法糖的掌握,以及是否能在实际代码中恰当使用。

回答思路

  1. 【回答框架 1】表达式主体成员是 C# 6.0 引入的语法糖,允许方法、属性、索引器、运算符等成员用 lambda 风格的表达式体(=>)代替完整的语句块。例如,int GetSquare(int x) => x * x; 等价于 int GetSquare(int x) { return x * x; }。
  2. 【回答框架 2】主要用法包括:方法返回单一表达式、只读属性返回单一表达式、构造函数和析构函数(C# 7.0)可直接调用其他语句。这使代码更简洁,减少样板代码。
  3. 【回答框架 3】使用时需注意:表达式主体必须是单个表达式,不能包含多条语句;对于属性,表达式主体隐式实现只读属性;对于索引器,则支持 get 和 set 的简写。
  4. 【回答框架 4】适用场景是逻辑简单的成员,比如简单的返回或赋值。当逻辑复杂、需要多行语句时,应使用传统块体以保持可读性。
  5. 【关键点 1】表达式主体成员用 => 定义,仅适用于单一表达式的成员。
  6. 【关键点 2】C# 6.0 支持方法、属性、索引器和运算符;C# 7.0 扩展到构造函数和析构函数。
  7. 【关键点 3】属性使用表达式主体时自动成为只读属性。
  8. 【易错点 1】不要试图在表达式中包含多个语句,语法不允许。
  9. 【易错点 2】表达式主体成员可能降低复杂逻辑的可读性,应保持表达式简短。