C#如何处理回调函数

时间:2012-09-11 04:57:11

标签: c# parsing callback

  public User Login(User user)
    {
        User responseUser = null; ;
        parse.Users.Login<User>("hello", "99999", r =>
            {
                if (r.Success) { responseUser = r.Data; }
            });
        return responseUser;
    }

为什么返回responseUser为null但r.Data不为null?谢谢!!!

1 个答案:

答案 0 :(得分:1)

您还没有告诉我们parse.Users.Login<User>函数的工作原理,但它似乎是异步的。这意味着它将立即返回并且稍后调用回调。所以你将从main函数返回null。

您需要修改Login功能,以便它也可以使用回调:

public void Login(User user, Action<User> action)
{
    User responseUser = null;
    parse.Users.Login<User>("hello", "99999", r =>
    {
        if (r.Success) 
        { 
            action(r.Data);
        }
        else
        {
            action(null);
        }
    });
}