首页 > 解决方案 > SendInfoTo(NetState, bool, bool)' 返回 void,return 关键字后面不能跟对象表达式

问题描述

对于知道自己在做什么的人来说,这可能是最简单的解决方法。对我来说,一个因为还在学习基础知识而一无所知的人;我很难过。我来到这个网站是为了进一步学习 C#,因为我用谷歌搜索的每一个错误都会把我带到这里。无论如何,这是我的行与错误本身一起导致错误。

代码

        public override void SendInfoTo(NetState state, bool sendOplPacket)
    {
        if (state.Mobile != null && ((m_Placer != null && state.Mobile.Serial.Equals(m_Placer.Serial)) || state.Mobile.AccessLevel >= AccessLevel.Administrator))
            SendInfoTo(state, sendOplPacket, false);
    }

    void SendInfoTo(NetState state, bool sendOplPacket, bool doChecks)
    {
        if (doChecks)
        {
            if (state.Mobile == null ||
                ((m_Placer == null || !state.Mobile.Serial.Equals(m_Placer.Serial)) &&
                 state.Mobile.AccessLevel < AccessLevel.Administrator))
                return false;
        }

错误

由于 'BaseFactionTrap.SendInfoTo(NetState, bool, bool)' 返回 void,return 关键字后面不能跟对象表达式

错误来自“return false;” 代码末尾的行。非常感谢任何帮助或指导。

提前致谢。

标签: c#

解决方案


您的方法SendInfoTo声明为void. 这意味着它不能返回任何值。

但你正试图返回false。这是不可能的,因此错误。

您必须使用 return 语句声明该方法。例如

bool SendInfoTo(NetState state, bool sendOplPacket, bool doChecks)
{
...
}

或者不返回任何东西。

但是你应该用这个返回值做一些事情


推荐阅读