Booleen检查C#; 转换代码

Ant*_*ols 1 c# int boolean

如果找到这段代码:

int error;
if (error > 0)
{
    if (error || (move_y > 0))
    {
        los_x_1 += move_x;
        error -= delta_y;
    }
}
Run Code Online (Sandbox Code Playgroud)

这里:http://roguebasin.roguelikedevelopment.org/index.php?title = Other_version_of_BLA

我认为代码是在C#中,但上面的代码块不起作用; 我在想它正在检查它是否'错误== 1',但我不确定.有任何想法吗?

Jon*_*eet 7

不,这可能是C(或C++),其中"任何非零值"对于布尔结构被视为"真".所以C#将是:

int error;
...
if (error > 0)
{
    if (error != 0 || (move_y > 0))
    {
        los_x_1 += move_x;
        error -= delta_y;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,由于if (error > 0)条件总是正确的,所以它已经在它内部是毫无意义的- 代码是有效的:

if (error > 0)
{
    los_x_1 += move_x;
    error -= delta_y;
}
Run Code Online (Sandbox Code Playgroud)

(编辑:那并不是说代码当然是正确的......只是展示它目前实际了什么.)