不能隐式转换类型' bool'“空白# 39;

本文关键字:空白 bool 类型 不能 转换 | 更新日期: 2023-09-27 18:07:49

我在我的android游戏中执行google play sdk,到目前为止我已经完成了登录和排行榜部分,但添加成就给我带来了一点麻烦,因为我使用公共bool方法使我的生活更容易为未来的更新,并将成就标记为解锁。

由于某些原因,我得到这个错误:不能隐式转换类型bool' to void'

public bool unlockAchievement(string achievementName, string achievementID) {
    if(loggedIn == true) {
        Social.ReportProgress(achievementID, 100.0f, (bool success) => {
            return success;
        });
    }
    else return false;
}

我想我已经解决了所有的问题,但我还是得到了这个错误。

任何帮助都是感激的。谢谢你。

编辑:

看起来是这样的

public bool unlockAchievement(string achievementName, string achievementID) {
    bool actionDone = false;
    if(loggedIn == true) {
        Social.ReportProgress(achievementID, 100.0f, (bool success) => {
            if(success) actionDone = true;
            else actionDone = false;
        });
        return actionDone;
    }
    else return actionDone;
}

谢谢

不能隐式转换类型' bool'“空白# 39;

您的lambda是一个封闭的方法,因此返回语句的上下文是lambda方法,而不是unlockAchievement

你可能想重构你的代码来使用回调,例如:

public void unlockAchievement(string achievementName, string achievementID, Action<bool> callback) {
    if(loggedIn == true) {
        Social.ReportProgress(achievementID, 100.0f, (bool success) => {
            callback(success);
        });
    }
    else callback(false);
}