并非所有的代码路径都返回值。

4

我遇到了这个编译器错误,问题出在哪里?

public PictureBox getinfo(int i, int j)
{
    return grid[i, j];
}

public  PictureBox kingmove(int i, int j)///<-----the problem is here
{
    getinfo(i, j);

    if (i < 9)
    {
        grid[i, j] = grid[i - 1, j - 1];
    }
    else
    {
        grid[i, j] = grid[i, j];
    }

读一本好的C#书怎么样?这样你就不需要经常在SO上提问并删除问题了... - CodesInChaos
这个常见的错误发生在你忘记为一个函数返回值或者你返回了一个与函数应该返回的数据类型不符的值时。 - Andrew Collins
1个回答

6
你的第二种方法没有return语句,但是返回类型与void不同。
在方法的末尾添加一个return语句,而不是在开头。
你也可以将其编辑到之前的问题中。
你混合使用UI和游戏逻辑的方式也很丑陋。游戏逻辑不应该知道WinForms、picture-boxes等内容。
相反,编写一个函数,它接受一个游戏状态并将其呈现为某个控件/位图/图片框/...

3
此外,他对getinfo()的调用可能没有任何有用的作用,但这是一个完全不同的问题。 - Donnie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接