C# 提示:ArgumentNullException.ThrowIfNull

💡 原文约200字/词,阅读约需1分钟。
📝

内容提要

C# 10 引入了 ArgumentNullException.ThrowIfNull 方法,该方法简化了空参数检查,并在必要时自动抛出异常。此方法通过在参数为空时自动抛出 ArgumentNullException 来提高代码的可读性和简洁性。文章提供了一个示例,说明如何使用 ThrowIfNull 方法来确保调用方法时参数不为空。

🔎

延伸解读

ThrowIfNull 的适用场景

ThrowIfNull 主要用于公共方法或构造函数中,对不应为 null 的参数进行快速校验。它替代了传统的手动 if 判断加 throw 语句,使代码更简洁。但需注意,它仅检查引用类型参数,值类型参数不受影响。在性能敏感的热路径中,频繁调用可能带来微小开销,但通常可忽略。

与传统空检查的对比

传统方式需要显式编写 if (arg == null) throw new ArgumentNullException(nameof(arg));,而 ThrowIfNull 一行即可完成,且自动包含参数名。这减少了样板代码,降低了遗漏参数名的风险。不过,ThrowIfNull 不会返回任何值,因此不能用于需要条件赋值的场景。

使用时的注意事项

ThrowIfNull 是静态方法,需通过 ArgumentNullException 类调用。它接受两个参数:待检查的对象和可选的参数名。若省略参数名,异常信息中不会包含具体参数名,可能不利于调试。因此建议始终传递 nameof(参数) 以明确异常来源。

❓

Q&A

ArgumentNullException.ThrowIfNull 方法的主要功能是什么?

该方法简化了空参数检查,并在参数为空时自动抛出 ArgumentNullException。

如何使用 ArgumentNullException.ThrowIfNull 方法?

可以通过调用 ArgumentNullException.ThrowIfNull(参数, 参数名称) 来确保参数不为空。

使用 ThrowIfNull 方法有什么好处?

使用该方法可以避免手动编写异常检查,提升代码的整洁性和可读性。

C# 10 中引入的 ThrowIfNull 方法有什么变化?

ThrowIfNull 方法在 C# 10 中被引入,简化了空参数检查的过程。

可以给出一个使用 ThrowIfNull 的代码示例吗?

示例代码如下:ArgumentNullException.ThrowIfNull(nome, nameof(nome));

ThrowIfNull 方法如何提高代码的可读性?

它通过自动抛出异常,减少了手动检查的代码量,从而提高了代码的可读性。

🏷️

标签

➡️

继续阅读