В чем будет преимущество использования decimal.compare по сравнению с простым использованием> или <для сравнения с переменными?





В CLI decimal не является собственным типом, как Int32, String и другие. Я предполагаю, что C# за кулисами использует Compare для реализации операторов сравнения.
Кроме того, вы можете передать Compare в качестве параметра в процедуру сортировки без создания делегата, уменьшая уровни вложенности методов внутри сортировки.
Это пара вещей из моей головы.
Значит, он использует bool [mscorlib] System.Decimal :: op_LessThan (valuetype [mscorlib] System.Decimal, valuetype [mscorlib] System.Decimal) и т. д.? Хорошо, я понимаю, что ты имеешь в виду.
Во-первых, это действительно упрощает создание экземпляра делегата Comparison<decimal>:
Comparison<decimal> foo = decimal.Compare;
Это удобно, чтобы перейти к вещам, которые принимают произвольные делегаты сравнения.
Это также может быть полезно, если вы используете язык, который не поддерживает перегруженные операторы. По этой причине рекомендуется не предоставлять функциональные возможности, которые Только поддерживаются операторами.
Decimal.Compare возвращает число со знаком, указывающее относительные значения двух десятичных значений. Обычно это используется для сортировки.
Такие операторы, как>,> =, <возвращают логическое значение.
Таким образом, они используются в различных сценариях.
Нет, C# будет использовать перегрузки операторов - вот для чего они нужны. Также, если вы передадите Compare в качестве параметра, является создаст делегат, но вы правы, что вам не нужно писать реализацию делегата самостоятельно.