c# - 为什么我们需要 C# 委托

c# - 为什么我们需要 C# 委托

您询问了一个示例,说明为什么要将函数作为参数传递,我有一个完美的示例,并认为它可以帮助您理解,它非常学术,但显示了用途。假设您有一个 ListResults() 方法和 getFromCache() 方法。而是进行大量检查缓存是否为空等。您可以将任何方法传递给 getCache ,然后仅在 getFromCache 方法中的缓存为空时调用它:

_cacher.GetFromCache(delegate { return ListResults(); }, "ListResults");

public IEnumerable GetFromCache(MethodForCache item, string key, int minutesToCache = 5)

{

var cache = _cacheProvider.GetCachedItem(key);

//you could even have a UseCache bool here for central control

if (cache == null)

{

//you could put timings, logging etc. here instead of all over your code

cache = item.Invoke();

_cacheProvider.AddCachedItem(cache, key, minutesToCache);

}

return cache;

}

相关推荐

我们采访了唯一在 Klei 工作的中国人
365bet官网注册

我们采访了唯一在 Klei 工作的中国人

📅 01-29 👁️ 7568
视图和视窗
365哪个才是真的

视图和视窗

📅 01-25 👁️ 5502
pspr是什么软件(先学pr还是先学ps)
365bet提款要多久

pspr是什么软件(先学pr还是先学ps)

📅 07-20 👁️ 2340
重装电脑系统详细教程
365bet提款要多久

重装电脑系统详细教程

📅 12-30 👁️ 5674
星际战甲洛基哪里出
365bet官网注册

星际战甲洛基哪里出

📅 01-27 👁️ 9412
线上展览
365bet官网注册

线上展览

📅 08-13 👁️ 5750
全自动口罩机价格
365哪个才是真的

全自动口罩机价格

📅 12-14 👁️ 1582
【物理教育】北大物理学院欧阳颀院士:成为科学家的五大要素
户口迁移需要什么手续和证件(办理户口迁移流程)
365哪个才是真的

户口迁移需要什么手续和证件(办理户口迁移流程)

📅 07-13 👁️ 9177