- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
public static bool IsPositiveInfinity(double d)
{
//Jit will generate inlineable code with this
if (d == double.PositiveInfinity)
{
return true;
}
else
{
return false;
}
}
http://govnokod.ru/22608#comment377918
Где мой пирожок?
Если же записать короче, вот так, например:
То компилятор сгенерирует более короткий код:
Неужели первый вариант лучше?
Зачем безусловный переход на следующую команду?
Но не я
Из кода с одним ретурном и без ифа (return (d == double.PositiveInfinity);) получилось это:
И правда, плохой код лучше оптимизируется JIT'ом, чем хороший.
После оптимизации (ключ /o+) этот кусок вырезается. Первый вариант:
Второй вариант:
if из приведённого говнокода не вырезается даже оптимизатором.