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