簡體   English   中英

使用作為方法參數傳遞的參數進行委托-如何訪問委托arg?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM