2015-02-12 1 views
0

Хорошо, я прошу прощения, если это глупый вопрос, но я не могу получить поисковый запрос Google, чтобы найти то, что я ищу, и я не уверен, куда еще обратиться. Я писал код C# и имею простой оператор if, смотрящий на 2 булевых.C# Предложение Преобразовать в выражение '| ='

if(a && !b) 
    do something 

Я использую MonoDevelop или Xamarin Studio, или как там оно называется, и подчеркнуло, если синий цвет, а всплывающее окно говорит: Предложения: Преобразование в «| =» выражение. Я не неопытный программист, но я не думаю, что раньше когда-либо видел | =, и я понятия не имею, что это значит или что предлагает это предложение, если оно действительно даже действительно. Кто-нибудь, желающий в меня понять? Спасибо за любую помощь.

Редактирование в другом месте, потому что другие спрашивали Настоящий код не намного больше. Это по существу

if(a && !b) 
    c = true; 

Не совсем уверен, как я мог бы сделать побитовый ярлык оператор работы здесь, поскольку я использую три различные переменные, но битовые операции огромного недостатка точка моих способностей. Но это именно то, о чем говорится в подчеркнутом if.

+1

[SymbolHound ваш друг] (http://symbolhound.com/?q=what+is+|%3D) – Default

+3

У меня трудно поверить этим. Можете ли вы опубликовать все 'if', включая часть' do something'? –

+0

SymbolHound? Благодарю. Не слышал об этом, но похоже, что это будет очень полезно. – cardician

ответ

3

Это побитовое ИЛИ и назначение. a |= b эквивалентно a = a | b.

+1

это только ответ на часть вопроса - ОП также спрашивает, почему он получает предложение преобразовать существующее выражение. – Default

+1

@Default Это потребует более подробных сведений о используемой точной инструкции. – itsme86

+0

Нет, это то, о чем я просил. И, конечно, я не знаю, почему я не думал о побитовых операторах. Я так редко отношусь к ним, что я просто о них не думаю. Глупый вопрос, как я уже сказал. Большое спасибо за помощь. Я помечаю ваш ответ как принятый, когда он позволяет мне через 10 минут. Хотя, возможно, мода предпочтет просто удалить это. – cardician

0

Вы можете посмотреть код, который обрабатывает этот случай для получения более подробной информации.

MonoDevelop (и почти все Xamarin Studio (кроме мобильных AddIns)) является открытым исходным кодом.

https://github.com/icsharpcode/NRefactory/blob/master/ICSharpCode.NRefactory.CSharp.Refactoring/CodeIssues/Synced/PracticesAndImprovements/ConvertIfToOrExpressionIssue.cs