Это могло бы быть оптимизацией, но, к сожалению, выдает тот же IL, что и деление PLUS операция мод.
На типичных архитектурах (x86 и друзья) их можно получить за одну операцию, но .NET JIT, похоже, не оптимизирует это (в моих тестах).
Итак, следующие два эквивалентны:
quotient = Math.DivRem(10, 3, out remainder);
VS:
quotient = 10 / 3;
remainder = 10 % 3;
За исключением того, что последнее более читабельно.
Для справки: эта уродливая опция быстрее на x86 и x64:
quotient = 10 / 3;
remainder = 10 - (3*quotient);
Надеемся, что когда-нибудь JIT улучшится, чтобы оптимизировать две операции в одну, поскольку это тривиально.