[英]Delegate with parameter passed as a method parameter - how to access the delegate arg?
我正在嘗試修改委托(本身作為參數傳遞)以接受其他參數。 這是原始方法簽名:
public static T GetCacheItem<T>(String key, Func<T> cachePopulate)
我將其修改為如下所示:
public static T GetCacheItem<T>(String key, Func<string, T> cachePopulate)
如何使用新的字符串參數? 在方法代碼中,我可以看到cachePopulate()
現在期望string arg
,但這是什么? 我實際將什么傳遞給cachePopulate()
作為參數?
更新:
為了簡潔起見,我可能沒有很好地解釋自己。 也許我應該問過如何調用該方法的更新版本。 無論如何,這些注釋使我了解到,附加委托參數實際上是作為GetCacheItem
方法的附加參數傳遞的,如下所示:
public static T GetCacheItem<T>(String key, string newparam, Func<string, T> cachePopulate)
{
...
cachePopulate(newparam);
}
我堅信,僅將其添加到委托方法簽名中就可以了!
我懷疑您想要:
public static T GetCacheItem<T>(String key, Func<string, T> cachePopulate)
{
// TODO: Try to get it from the cache
// But if not...
T result = cachePopulate(key);
// TODO: Cache it
return result;
}
但基本上, 您需要確定委托輸入的含義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.