¿Cuál sería la ventaja de usar decimal.compare frente a simplemente usar un> o < para comparar con las variables?C# decimal.compare vs.> o <
Respuesta
En la CLI, el decimal no es un tipo nativo como Int32, String y otros. Supongo que C# usa Compare behind the scenes para implementar los operadores de comparación.
Además, puede pasar Comparar como un parámetro a una rutina de clasificación sin crear un delegado, reduciendo los niveles de anidación de métodos dentro de la ordenación.
Eso es un par de cosas fuera de mi cabeza.
Por un lado, hace que sea muy fácil construir una instancia de delegado Comparison<decimal>
:
Comparison<decimal> foo = decimal.Compare;
Esto es útil para pasar a cosas que tienen delegados de comparación arbitrarias.
También puede ser útil si está utilizando un lenguaje que no admite operadores sobrecargados. Esa es la razón por la que se recomienda no exponer la funcionalidad que es solo compatible con operadores.
Decimal.Compare devuelve un número firmado que indica los valores relativos de dos valores decimales. Un uso típico de esto es para clasificar.
Operadores como>,> =, < devuelven un valor booleano.
Se utilizan en diferentes situaciones.
- 1. <? o <? php --- ¿hay alguna diferencia?
- 2. Are>? o <? operadores legítimos en cualquier dialecto C++?
- 3. <script></script> o <script />?
- 4. Acción <T> o Acción <in T>?
- 5. C# Genéricos: Lista <Object> o nueva clase extends List <Object>
- 6. En C++, ¿qué es más rápido? (2 * i + 1) o (i << 1 | 1)?
- 7. Diccionario <string, MyObject> o List <MyObject> con C# 3.5?
- 8. Cómo usar List <T> o Dictionary <T,T2> en C# WinRT componente
- 9. sobrecarga de operadores << - C++
- 10. C++ múltiples definiciones de operador <<
- 11. C++ std :: stringstream operador << sobrecarga
- 12. nuevo [] o nuevo Lista <T>?
- 13. Unparse AST <O (exp (n))?
- 14. operador <en C++
- 15. C# - delegar System.Func < >
- 16. ¿Lista <BusinessObject> o BusinessObjectCollection?
- 17. <% # Eval ("Estado")%> o <% # DataBinder.Eval (Container.DataItem, "estado")%>
- 18. amigo en el operador == o << ¿cuándo debería usarlo?
- 19. Usando class << self, ¿cuándo usar clases o módulos?
- 20. Lista <?> o Lista <Object>
- 21. Func <TObject, bool> o Predicate <TObject>?
- 22. Java Colección <Object> o Colección <?>
- 23. ¿Cuál es la diferencia entre <C-C> y <C-[> en vim?
- 24. Problema con C# <-> C++ DLLImport "Intentó leer o escribir en la memoria protegida".
- 25. usa Func <> (o Acción <>) o crea un delegado propio?
- 26. ¿Qué operador es más rápido (> o> =), (<o <=)?
- 27. ¿Qué está haciendo el operador << en C++?
- 28. incluyendo <xstring>, <cstring>, <string> y <wstring> en C++
- 29. C++ utilizando stringstream después << como parámetro
- 30. ¿Qué es <? = En C++?
No, C# utilizará las sobrecargas del operador: para eso están. Además, si pasa Compare como parámetro, * está * creando un delegado, pero tiene razón en que no necesita escribir usted mismo la implementación del delegado. –
Entonces usa bool [mscorlib] System.Decimal :: op_LessThan (valuetype [mscorlib] System.Decimal, valuetype [mscorlib] System.Decimal), etc.? OK, entiendo a qué te refieres. –