2015-04-07 2 views
-4

Что означает строка кода ниже в этом случае?Что в этом случае означает = =

lPutMsgOptions.Options |= MQC.MQPMO_FAIL_IF_QUIESCING + MQC.MQPMO_SET_IDENTITY_CONTEXT ; 
+6

Заголовок вопроса имеет '! =', Но ваш код имеет '| ='. Они не означают одно и то же. – hvd

+2

Вы читали [документы о '| ='] (https://msdn.microsoft.com/en-us/library/h5f1zzaw.aspx)? –

ответ

1

| является побитовым оператором ИЛИ. Код также можно записать следующим образом:

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 }; 

Используя бинарный оператор ИЛИ (|), вы можете комбинировать различные дни недели.

+0

Почему вы используете его в этом контексте? – user1438082

1

Выполняет побитовое ИЛИ операцию.

Это сокращение для:

lPutMsgOptions.Options = lPutMsgOptions.Options | MQC.MQPMO_FAIL_IF_QUIESCING + MQC.MQPMO_SET_IDENTITY_CONTEXT ; 
Смежные вопросы