gpt4 book ai didi

C# Func getObject 的目的是什么?
转载 作者:太空宇宙 更新时间:2023-11-03 18:23:00 25 4
gpt4 key购买 nike

我找到了以下代码片段,想知道 Func<object> getObject 的用途是什么属性:

public void InsertCacheItem(string key, Func<object> getObject, TimeSpan duration)
{
try
{
var value = getObject();
if (value == null)
return;

key = GetCacheKey(key);

_cache.Insert(
key,
value,
null,
System.Web.Caching.Cache.NoAbsoluteExpiration,
duration,
System.Web.Caching.CacheItemPriority.Normal,
null);
}
catch { }
}

如何通过传递 Func 属性来调用这个特定的函数?

最佳答案

你可以这样调用它:

InsertCacheItem("bob", () => "valuetocache", TimeSpan.FromHours(1));

但为什么要这样做呢?为什么不直接传入“valuetocache”?好吧,主要是由于 try..catch。编写的代码意味着即使 Func 无法执行,调用代码也不会受到影响。

所以:

InsertCacheItem("bob", () => MethodThatThrowsException(), TimeSpan.FromHours(1));

仍然有效,例如。 它不会缓存任何内容,但不会冒泡调用代码的异常。

关于C# Func<object> getObject 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45083094/

25 4 0