Превратит ли компилятор C # Method1 в
Метод2 автоматически
нет
Нет
и пропустить B (), если A () неверно?
Да
В общем код вроде
return A(value) && B(value);
быстрее
if(!A(value)
return false;
if(!B(value)
return false;
Поскольку первый вариант можно преобразовать в код x86, в котором не используются переходы.
Например, в коде:
private static bool B_1(int value)
{
return value < 5;
}
private static bool B_2(int value)
{
if (value < 5)
return true;
else
return false;
}
Для B_1 C # генерирует немного более быстрый код x86, чем для B_2.
В этой конкретной ситуации я бы сказал, что это зависит от A () и B (). Я бы запустил его под профилировщиком, чтобы увидеть, что быстрее.