c# – 为什么我要包含一个Func / Func作为参数?

我承认它们可能很有用,但是当我真的希望将func作为方法的参数时,我正试图解决这个问题.

public void WeirdMethod(int myNumber, func op);

在设计和功能方面,有人可以向我解释一些我想要考虑的情况吗? “可重用性”的理论对我没有多大帮助.真实场景最好.帮我想想你好哈哈.

以下是我所知道的一切:

>这将允许我通过代表
>这将允许我使用lambda表达式.

叶氏…

注意:
我知道这个帖子会被关闭,因为没有“正确”的答案.但我认为刚才为我点击它的是“延迟计算”.

最佳答案
一般情况是您必须将延迟计算传递给您的方法.当计算某些东西很昂贵时(例如,当您缓存某些内容时),这非常有用.

public Guid GetFromCache(string key, Func<Guid> make) {
    Guid res;
    if (!cache.TryGetValue(key, out res)) {
        res = make();
        cache.Add(key, res);
    }
    return res;
}

现在您可以按如下方式调用此方法:

Guid guid = GetFromCache(myKey, () => database.MakeNewGuid());

转载注明原文:c# – 为什么我要包含一个Func / Func作为参数? - 代码日志