我使用按位枚举从函数
返回值[Flags]
private enum PatientRecord { NoRecord=0x0, SameEnrollmentDate=0x1, SameScreeningDate=0x2 }
并具有
功能var returnVar = PatientRecord.NoRecord;
....
if (condition...)
{
returnVar &= PatientRecord.SameEnrollmentDate;
}
return returnVar
调试器显示returnVar在执行AND assignment operator之前和之后具有相同的值(是PatientRecord.NoRecord(0)或PatientRecord.SameScreeningDate(2))。
为什么会这样,是否有任何解决方案比:
returnVar = returnVar & PatientRecord.SameEnrollmentDate;
感谢。
答案 0 :(得分:3)
你想要按位OR(|
)而不是按位AND(&
):
var returnVar = PatientRecord.NoRecord;
....
if (condition...)
{
returnVar |= PatientRecord.SameEnrollmentDate;
// ^ Bitwise OR assignment
}
与零(NoRecord=0x0
)进行AND运算将始终为零。