简单 2 布尔效率

Simple 2 Boolean Efficiency

快点,伙计们 - 你知道什么时候你的大脑会因为看东西而受伤。只是看看是否有 "better" 方法可以根据布尔逻辑执行此操作。

private RegenerationType AccquireRegenerationState (int floor, int playerFloor)
{
    bool entranceExists = (floorBlocks[floor].doorBlocks.Count != 0) ? true : false;

    if (floor + 1 == playerFloor || !floorBlocks[floor + 1].isVisited)
    {
        if (entranceExists)
        {
            return RegenerationType.Still;
        }
        else
        {
            return RegenerationType.Limit;
        }
    }
    else
    {
        if (entranceExists)
        {
            return RegenerationType.Prime;
        }
        else
        {
            return RegenerationType.Full;
        }
    }
}

我想这就是您能达到的最好结果了。当然,假设您保持代码的可读性和清晰度:

private RegenerationType AccquireRegenerationState (int floor, int playerFloor)
{
    var entranceExists = floorBlocks[floor].doorBlocks.Count != 0;

    var whatever = floor + 1 == playerFloor || !floorBlocks[floor + 1].isVisited;

    if (whatever)
    {
        return entranceExists ? RegenerationType.Still : RegenerationType.Limit;
    }
    else
    {
        return entranceExists ? RegenerationType.Prime : RegenerationType.Full;
    }
}
bool entranceExists = (floorBlocks[floor].doorBlocks.Count != 0);
return
    (floor + 1 == playerFloor || !floorBlocks[floor + 1].isVisited)?
    (entranceExists? RegenerationType.Still: RegenerationType.Limit):
    (entranceExists? RegenerationType.Prime: RegenerationType.Full);