public class Options<T>
{
protected internal Func<T> GetFromDB { get; set; }
}
我将如何检查GetFromDB
方法本身不为空,而不调用该方法?如果我这样做:
if (options.GetFromDB() != null)
{
var r = options.GetFromDB();
... do something
}
它似乎在传递的方法中调用两次代码,一次为空检查,一次为实际调用返回。
您可以缓存结果,但我不知道如何在不调用函数的情况下知道函数的返回值。您也可以将返回值分配给一个变量,并检查该变量是否为非空值。 –
如果要检查函数的* result *是否为null或检查是否没有提供函数 –
'options.GetFromDB()!= null'正在测试执行方法是null,而不是'func'本身 – Jonesopolis