此问题在此处已有答案:
(13个答案)
4天前关闭。
我把Task传递给类库,在类库中它需要被执行,但是参数值只能在类库本身中获得,我不知道还能怎么解释,也许这个例子更清楚:
1.)需要从库运行的任务:
public async Task<bool> Login(string _password)
{
//...
}
2.)将此任务传递给类库(使用string.Empty,因为参数将在类库中获得它的真实的值)
var _check = _myLibrary.ShowLogin(() => _myMethods.Login(string.Empty));
3.)从类库执行任务,但使用真实的参数值。
public partial class LoginWindow : Window
{
public ShowLogin(Func<Task<bool>> _checkpassword)
{
CheckPassword = _checkpassword;
}
public Func<Task<bool>> CheckPassword{ get; set; }
public MessageBoxResult Result { get; set; }
private async void Btn_login_Click(object sender, RoutedEventArgs e)
{
var _check = await CheckPassword(Txt_password.Text); // ERROR HERE!
if (!_check)
{
Result = MessageBoxResult.Cancel;
}
else
{
Result = MessageBoxResult.OK;
}
Close();
}
}
类库保存了我在WPF中显示的自定义窗口的集合。在这个特定的窗口中,用户必须输入密码才能登录。如果密码正确,用户可以进入应用程序,否则就不能。这就是全部。
如何使用库中的参数调用传递的Task**?**
编辑:错误为“'委托函数'不接受1个参数”。
1条答案
按热度按时间wmvff8tz1#
Func<Task<bool>>
是**Task<bool> Login()
**,因为你可以传递一个你需要定义Func<string, Task<bool>>
的参数。