在研究错误的原因时,我发现了这行代码:
Status |= (int)states.Reading;
在 C# 中,"|=" 运算符是什么意思?
"Status" 的定义如下:
public static int Status
...使用访问器和修改器(或“getter”和“setter”)进行定义,而“states”的定义方式如下:
[Flags]
public enum states
在研究错误的原因时,我发现了这行代码:
Status |= (int)states.Reading;
在 C# 中,"|=" 运算符是什么意思?
"Status" 的定义如下:
public static int Status
...使用访问器和修改器(或“getter”和“setter”)进行定义,而“states”的定义方式如下:
[Flags]
public enum states
[Serializable, DataContract(Namespace = "Company.Domain.LOB.Handler")]
[Flags]
public enum BankItemStatus
{
[EnumMember]
UnBatched,
[EnumMember]
Batched,
[EnumMember]
Sent,
[EnumMember]
ReplyReceived,
[EnumMember]
Closed
}
BankItemStatus bankItemStatus = BankItemStatus.UnBatched;
BankItemStatus bankItemStatus = BankItemStatus.Sent;
if(bankItemStatus.UnBatched==BankItemStatus.UnBatched) //FALSE
if(bankItemStatus.Sent==BankItemStatus.Sent) //TRUE
现在,如果你这样做:
BankItemStatus bankItemStatus = BankItemStatus.UnBatched;
bankItemStatus |= bankItemStatus.Sent
您会发现bankItemStatus现在具有枚举成员。您可以像这样进行检查:
if(bankItemStatus.UnBatched==BankItemStatus.UnBatched) //TRUE
if(bankItemStatus.Sent==BankItemStatus.Sent) //TRUE