Подтвердить что ты не робот

Более чистый код для переключения элемента bool

Обратите внимание, что вопрос заключается не в том, чтобы отрицать логическое значение, а в том, что касается самого элегантного, эффективного и приятного способа сделать это.

После нажатия кнопки переключения, я выполняю следующий код для хранения нового состояния в закрытом bool.

_isIt = !_isIt;

Это работает, конечно. Это читаемо, конечно. Но так же i = i + 1, мы всегда пишем i++. Есть ли более простой способ переключения bool?

4b9b3361

Ответ 1

Нет. Это оптимальный путь. Поздравляем!

Даже IF был бы другой способ (как вы прокомментировали - _isIt!!), я считаю, что было бы лучше не использовать его, потому что вы будете поднимать много взглядов на глаза в любом случае.

Ответ 2

На самом деле есть еще одна опция для переключения логического значения, это будет работать:

_isIt ^= true;

Однако это не лучше, чем вы сделали...

Ответ 3

Нет, я считаю, что это идиоматический способ С# для переключения bool (т.е. присваивания ему противоположного значения).

Мое мнение: держите свой код таким, какой он есть. Он ясно передает намерение кода, что является самым важным для будущих читателей.

Если вас интересуют альтернативные способы его выполнения, вы можете использовать XOR, но я буду утверждать, что это менее читаемо.

_isIt ^= true;

Ответ 4

Нет, нет. Я не знаю, что еще добавить к этому ответу:)