C# 面试题 目录

C# 中弃元 (Discard) 的用法

推荐答案

在 C# 中,弃元(Discard)是一个特殊的变量名 _,用于表示一个不打算使用的值。弃元通常用于忽略方法返回的值、模式匹配中的不关心的部分,或者解构赋值中不需要的变量。

示例代码

-- -------------------- ---- -------
-- --------
- - -------------

-- --------
-- ---- -- --- --
-
    ---------------------- -- -- ---- --- -- ----- ---- ----- --- ---------
-

-- --------
--- --- -- ------- - ------------
----------------------- ------ --- -----------

关键点

  • 弃元 _ 是一个特殊变量名,表示不打算使用的值。
  • 弃元可以用于忽略方法返回值、模式匹配中的不关心的部分,或解构赋值中不需要的变量。
  • 弃元不会占用内存空间,因为它不会被实际使用。

本题详细解读

弃元的定义与用途

弃元是 C# 7.0 引入的一个特性,主要用于忽略不需要的值。弃元的使用场景包括但不限于:

  1. 忽略方法返回值:当你调用一个方法,但不关心它的返回值时,可以使用弃元来忽略返回值。

  2. 模式匹配中的弃元:在模式匹配中,如果你只关心某个对象的类型而不关心其具体值,可以使用弃元。

  3. 解构赋值中的弃元:在解构赋值中,如果你只关心部分值,可以使用弃元来忽略不需要的部分。

弃元的优势

  • 代码简洁:使用弃元可以让代码更加简洁,避免定义不必要的变量。
  • 性能优化:弃元不会占用内存空间,因为它不会被实际使用,因此在某些情况下可以提高性能。
  • 提高可读性:通过使用弃元,可以明确表示某些值是不需要的,从而提高代码的可读性。

注意事项

  • 弃元 _ 是一个特殊变量名,不能重复使用。在同一作用域内,只能有一个弃元。
  • 弃元不能用于赋值操作,因为它不是一个真正的变量。

示例代码解析

-- -------------------- ---- -------
-- --------
- - -------------

-- --------
-- ---- -- --- --
-
    ---------------------- -- -- ---- --- -- ----- ---- ----- --- ---------
-

-- --------
--- --- -- ------- - ------------
----------------------- ------ --- -----------

在这个示例中:

  • _ = SomeMethod(); 表示忽略 SomeMethod 的返回值。
  • if (obj is int _) 表示只关心 obj 是否是 int 类型,而不关心其具体值。
  • var (_, _, result) = GetValues(); 表示只关心 GetValues 返回的第三个值,忽略前两个值。
纠错
反馈