我有以下C ++行:

if(fromPos.x == 0xFFFF){
        if(fromPos.y & 0x40){
            fromIndex = static_cast<uint8_t>(fromPos.z);
        }
        else{
            fromIndex = static_cast<uint8_t>(fromPos.y);
        }
    }
    else
        fromIndex = fromStackPos;


但是我不知道如何在C#中利用fromPos.y和0x40,以C ++的方式进行操作在CSharp上不起作用

最佳答案

在C ++中,if语句中的条件不必是布尔表达式-但在C#中确实如此。您只需要检查结果是否为非零即可:

if ((fromPos.y & 0x40) != 0)


(由于优先级,必须使用方括号; !=的绑定比&紧密。)

10-04 12:36