Что означает строка кода ниже в этом случае?Что в этом случае означает = =
lPutMsgOptions.Options |= MQC.MQPMO_FAIL_IF_QUIESCING + MQC.MQPMO_SET_IDENTITY_CONTEXT ;
Что означает строка кода ниже в этом случае?Что в этом случае означает = =
lPutMsgOptions.Options |= MQC.MQPMO_FAIL_IF_QUIESCING + MQC.MQPMO_SET_IDENTITY_CONTEXT ;
| является побитовым оператором ИЛИ. Код также можно записать следующим образом:
lPutMsgOptions.Options = lPutMsgOptions.Options | (MQC.MQPMO_FAIL_IF_QUIESCING + MQC.MQPMO_SET_IDENTITY_CONTEXT) ;
Он используется для установки двух двоичных перечислений флагов MQPMO_FAIL_IF_QUIESCING и MQPMO_SET_IDENTITY_CONTEXT.
Вы могли бы, например, определить подобное перечисление следующим образом:
enum Days { Sat=1, Sun=2, Mon=4, Tue=8, Wed=16, Thu=32, Fri=64 };
Используя бинарный оператор ИЛИ (|), вы можете комбинировать различные дни недели.
Почему вы используете его в этом контексте? – user1438082
Выполняет побитовое ИЛИ операцию.
Это сокращение для:
lPutMsgOptions.Options = lPutMsgOptions.Options | MQC.MQPMO_FAIL_IF_QUIESCING + MQC.MQPMO_SET_IDENTITY_CONTEXT ;
Заголовок вопроса имеет '! =', Но ваш код имеет '| ='. Они не означают одно и то же. – hvd
Вы читали [документы о '| ='] (https://msdn.microsoft.com/en-us/library/h5f1zzaw.aspx)? –