'|' против '||' оптимизация компилятора в C#C#

Место общения программистов C#
Ответить
Anonymous
 '|' против '||' оптимизация компилятора в C#

Сообщение Anonymous »

Недавно мне задали этот вопрос в интервью, и я совершенно ошибся, но заинтересовался оптимизацией компилятора в C# и .net.

Рассмотрим следующий фрагмент:

Код: Выделить всё

void Main()
{
Console.WriteLine("Results when bitwise or is used: ");
Console.WriteLine(FuncA() | FuncB());

Console.WriteLine("Results when or operator is used: ");
Console.WriteLine(FuncA() || FuncB());
}

bool FuncA()
{
Console.WriteLine("Function A is executing.");
return true;
}

bool FuncB()
{
Console.WriteLine("Function B is executing.");
return false;
}
Выполнение приведенных выше результатов дает мне следующий результат:

Результаты при использовании побитового или:


Функция A выполняется.

Функция B выполняется.

Верно


Результаты при использовании оператора или:


Выполняется функция A .

Верно


Мой вопрос заключается в том, почему компилятор этого не сделал. оптимизировать использование побитового оператора? Так же, как и для оператора C# or, параметры уже известны компилятору, почему бы ему не обработать его таким же образом для побитового оператора or?

Подробнее здесь: https://stackoverflow.com/questions/163 ... in-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»