检查Func< T>不调用它就不为空

本文关键字:调用 检查 Func | 更新日期: 2023-09-27 18:17:03

给定类:

public class Options<T>
{
    protected internal Func<T> GetFromDB { get; set; }
}

我如何检查GetFromDB方法本身不是null,而不调用该方法?如果我这样做:

if (options.GetFromDB() != null)
{
    var r = options.GetFromDB();
    ... do something
}

它似乎在传递的方法中调用代码两次,一次用于null检查,一次用于实际调用并返回。

检查Func< T>不调用它就不为空

这样不行吗?

if (options.GetFromDB != null)