黑马程序员技术交流社区

标题: 飞行棋制作过程出了好几次小问题,求解 [打印本页]

作者: 赵贺景    时间: 2014-4-27 23:34
标题: 飞行棋制作过程出了好几次小问题,求解
本帖最后由 赵贺景 于 2014-4-28 18:34 编辑

     public  static string getmapstring(int pos)
        {
            string result = "";
            if (playerpose[0] == pos && playerpose[1] == pos)
            {
                result = "<>";//AB同在一格
            }
            else if (playerpose[0] == pos)
            {
                result = "A";//A在当前格
            }
            else if (playerpose[1] == pos)
            {
                result = "B";//A在当前格
            }
            else
            {
                switch (map[pos])
                {
                    case 0:
                        result = "□";
                        break;
                    case 1:
                        result = "◎";
                        break;
                    case 2:
                        result = "※";
                        break;
                    case 3:
                        result = "▲";
                        break;
                    case 4:
                        result = "◆";
                        break;
                }
                return result;
            }
        }

错误        1        “飞行棋.Program.getmapstring(int)”: 并非所有的代码路径都返回值        E:\unity\ConsoleApplication1\飞行棋\Program.cs        108        29        飞行棋
这是 是不是有漏掉的没有定义的地方啊

作者: Mekor    时间: 2014-4-27 23:56
看看传参了没???public  static string getmapstring(int pos)这里,你定义的是有个int类型的参数,当你调用的时候是否往里面传参了???
作者: 鲤鱼    时间: 2014-4-28 00:00
目测是result的问题,你只return了else部分的result,if里面那些都没有返回。
把return result 再移一个括号外就行了
作者: 鲤鱼    时间: 2014-4-28 00:03
本帖最后由 鲤鱼 于 2014-4-28 00:34 编辑
Mekor 发表于 2014-4-27 23:56
看看传参了没???public  static string getmapstring(int pos)这里,你定义的是有个int类型的参数,当你 ...

{:3_68:}提示的是并非所有的代码路径都返回值,觉得还是应该跟return有关。你说的情况报错的话应该是这个

作者: 伪善者。    时间: 2014-4-28 00:29
是的 你的return只是返回了else条件里的 result
而没有返回if条件里的result 把你的return移到
外面一层的括号即可
作者: continue     时间: 2014-4-28 08:51
return 放错地方了,放在if....else...外面去,你把switch中最好加一个default
作者: ?﹪滾妳媽丶    时间: 2014-4-28 09:50
return result;  这里没有返回值会有红色波浪线的啊。。
有红色波浪线就代表语法错误
作者: 赵贺景    时间: 2014-4-28 18:32
懂了,还是对基础知识不太熟练啊
作者: 李超杰    时间: 2014-4-30 12:09
最后没有返回参数,你只定义了if else里面的返回参数了,但是整个类没有返回指定的参数




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2