gpt4 book ai didi

C# 为 System.Action 订阅方法,但使用预定义的参数

转载 作者:行者123 更新时间:2023-12-05 01:05:41 24 4
gpt4 key购买 nike

我有一个类正在监听很多 Action ,然后当这些 Action 被调用时,会根据调用的 Action 执行类似的操作,但会针对不同的对象。我的想法是:

如果我有

System.Action<SomeType> SomeAction;
void SomeMethod(SomeType type);

我可以的

SomeAction += SomeMethod;

我的问题是,如果我有另一个类(class)说

void SomeOtherMethod(SomeType type, SomePredefinedType)

有没有办法做类似的事情

SomePredefinedType SomeValue;
SomeAction += SomeMethod(SomeValue);

也就是说,通过预定义 exces 参数来订阅一个有两个参数的方法到一个有一个参数的 Action ?

最佳答案

你不能用这样的方法组转换来做到这一点,但你可以很容易地用 lambda 表达式做到这一点:

SomePredefinedType extraArgument = ...;
SomeAction += value => SomeOtherMethod(value, extraArgument);

关于C# 为 System.Action 订阅方法,但使用预定义的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70481835/

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