gpt4 book ai didi

c# - Func 如何返回 Func

转载 作者:行者123 更新时间:2023-11-30 14:35:54 28 4
gpt4 key购买 nike

我正在研究撤消-重做实现,我希望其堆栈上的撤消或重做项目包含对某个 Func<out TResult> 的引用。其中 TResult本身就是一个 Func<TResult> .重点是当Func从撤消堆栈调用,然后将返回值存储在重做堆栈中(反之亦然)。

我不确定是否可以因此提出这个问题。

我能想到的最好的方法都行不通,正如您在此处看到的那样:

struct UndoRedoItem
{
public Func<Func<Func<Func<Func<Func<......>>>>>> UndoOrRedoFunc;
public string Description;
...
}

最佳答案

正如您所发现的,让撤消 Func 直接返回重做 Func 是行不通的,因为所需的类型参数会无限增长。您需要做的是引入一个间接级别,例如,通过让撤消 Func 返回要放置在重做堆栈上的 UndoRedoItem 而不仅仅是重做 Func:

struct UndoRedoItem
{
public Func<UndoRedoItem> UndoOrRedoFunc;
public string Description;
...
}

关于c# - Func<out TResult> 如何返回 Func<out TResult>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11377881/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com