c# - 如何测试 Action<...> 是否为空?

标签 c# .net null functional-programming nullreferenceexception

<分区>

假设我有一个如下所示的函数:

public void DoSomething(Action<object> something)
{
    something(getObject());
}

如果 something 为 null,则此代码将引发 NullReferenceException。

但是,something == null 不会编译,那么我该如何测试 something 以确定它是否为 null?

最佳答案

您应该能够直接针对 null 进行测试。这编译得很好:

public void DoSomething(Action<object> something)
{
    if (something == null) // Note that there are no () on something
    {
        throw new ArgumentNullException("something");
    }

    something(GetObject()); // Assumes `GetObject()` method is available on class, etc
}

关于c# - 如何测试 Action<...> 是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16653989/

相关文章:

mysql关系问题。当 M :N null 时获取结果

java - 具有空键和空值的 HashMap

c# - 可以重载空合并运算符吗?

c# - 图像余弦波

string - 用空值替换空字符串

c# - 在我自己的登录表单中使用 Windows 身份验证

.net - MVVM Light 的 SimpleIoC 背后是什么

c# - 将数据插入 SQL 时出错

C# 用于脚本文件的脚本 (csx) 位置

asp.net - Azure DevOps 构建管道 - 从代码覆盖范围中排除文件夹