gpt4 book ai didi

c# - 在Messenger中注册方法时使用Action

转载 作者:行者123 更新时间:2023-12-03 10:26:28 24 4
gpt4 key购买 nike

我正在使用mvvm模式,并且有下一种情况。
例如存在一种方法:

    void LockPressed(KeyEventArgs e)
{
// Code
}

我在这里注册:
    App.Messenger.Register("LockPressed", (Action<KeyEventArgs>)LockPressed);

那没问题。但是,如果我需要修改方法,则它需要两个参数:
    void LockPressed(KeyEventArgs e, string name)
{
//Code
}

逻辑上的resgister操作应如下所示:
    App.Messenger.Register("LockPressed", (Action<KeyEventArgs,string>)LockPressed);

但是没有成功。我收到一个错误:

Error CS1503 Argument 2: cannot convert from 'System.Action' to 'System.Action'



有什么想法可以解决吗?

最佳答案

这应该工作:

App.Messenger.Register("LockPressed", (KeyEventArgs eventArgs)=>LockPressed(eventArgs, "name"));

或更复杂
App.Messenger.Register("LockPressed", (KeyEventArgs eventArgs)=>
{
string name = GetName();
LockPressed(eventArgs, name);
});

或者
Action<KeyEventArgs> lockPressedAction = (eventargs) => LockPressed(eventargs,"g");
App.Messenger.Register("LockPressed", lockPressedAction);

关于c# - 在Messenger中注册方法时使用Action <T1,T2>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41825394/

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