我知道这可能是一个愚蠢的问题,答案很简单,但是经过一个小时的互联网搜索,我找不到解决方法。

    public bool GetCollision(int x, int y)
    {
        bool isPassable;

        if (x < 0 || x >= 20)
        {
            isPassable = false;
        }

        if (y < 0 || y >= 20)
        {
            isPassable = true;
        }

        return isPassable;
    }

在倒数第二行上,它说isPassable未分配...但很显然,我在if语句中将其分配给它。就我而言,“if”陈述必定存在一些根本性的误解。

那么,我该怎么做呢?非常感谢你。

最佳答案

那是因为它没有明确设置默认值。默认情况下,将isPassable设置为False即可完成。

您也可以执行以下操作:

return (!(x < 0 || x >= 20) && (y < 0 || y >= 20))

编辑:以上解决方案仅在您的IF之间存在AND关系的情况下才有效。

10-06 14:36