¿Cuándo debemos usar el operador checked
en C#?
¿Es solo adecuado para el manejo de excepciones?¿Cuándo debemos usar el operador verificado en C#?
Respuesta
Se podría utilizar checked
para protegerse contra un desbordamiento (silencio) en una expresión.
Y use unchecked
cuando sepa que podría producirse un desbordamiento inofensivo.
Utiliza ambos en lugares donde no desea confiar en la configuración del compilador predeterminada (para todo el proyecto).
Ambas formas son bastante raras, pero cuando se realiza una aritmética de enteros críticos, vale la pena pensar en un posible desbordamiento.
También tenga en cuenta que vienen en dos formas:
x = unchecked(x + 1); // (expression)
unchecked { x = x + 1;} // { statement(s) }
De The checked and unchecked operators
El comprueban y operadores sin marcar se utilizan para controlar el contexto comprobación de desbordamiento para de tipo integral operaciones aritméticas y conversiones.
En un contexto comprobado, si una expresión produce un valor que está fuera del rango del tipo de destino , el resultado depende de si la expresión es constante o no constante. Las expresiones constantes provocan errores de tiempo de compilación, mientras que las expresiones no constantes se evalúan en tiempo de ejecución y generan excepciones.
En un contexto no se controla, si una expresión produce un valor que es fuera del rango del tipo de destino , el resultado se trunca.
checked
le ayudará a recoger System.OverFlowException
, que pasará desapercibido de lo contrario
int result = checked (1000000 * 10000000);
// Error: operation > overflows at compile time
int result = unchecked (1000000 * 10000000);
// No problems, compiles fine
checked
vs unchecked
también es útil en esos momentos cuando estás haciendo matemáticas enteras. especialmente incrementando operaciones y usted sabe que aumentará más allá de UInt32.MaxValue
, y quiere que se desborde inofensivamente de nuevo a 0
.
- 1. ¿Cuándo debemos usar la palabra clave extern alias en C#?
- 2. ¿Cuándo, si alguna vez, debemos usar const?
- 3. Cuándo deberíamos usar la clase y cuándo no debemos
- 4. SPL vs. Array: ¿Cuándo deberíamos usar SPL y cuándo debemos usar Array en PHP?
- 5. Cuándo usar Class.isInstance() y cuándo usar el operador instanceof?
- 6. Reconociendo cuándo usar el operador de módulo
- 7. ¿Cuándo debemos llamar a System.exit en Java
- 8. ¿Cuándo debemos establecer UseShellExecute en True?
- 9. ¿Qué significa en C#: usar - = operador por eventos?
- 10. Cuándo utilizar el operador "^"
- 11. Cuándo usar "nuevo" y cuándo no hacerlo, en C++?
- 12. ¿Cuál es el uso de la directiva de preprocesador #if DEBUG en C#? ¿Cuándo debemos usar esto?
- 13. ¿Cuándo debería usar el atributo en C#?
- 14. Cuándo usar vectores y cuándo usar matrices en C++?
- 15. Reglas para cuándo usar la sobrecarga del operador en python
- 16. ¿Cuándo debemos usar NVARCHAR/NCHAR en lugar de VARCHAR/CHAR en SQL Server?
- 17. Cuándo usar extern "C"?
- 18. ¿Cuándo sobrecarga el operador nuevo?
- 19. C++: cuándo usar punteros?
- 20. Cuándo usar las propiedades get y set en C#
- 21. Cuándo usar extern "C" en C++?
- 22. Bloqueo verificado en .NET
- 23. ¿debemos usar un captcha para Registrarse?
- 24. ¿Cuándo el operador `==` no es equivalente al operador `is`? (Python)
- 25. C# Cuándo debe usar el palabra "this"
- 26. ¿Cuándo "y" convertirse en un operador en C++
- 27. ¿Cuándo usar el cierre?
- 28. Punteros en C: ¿cuándo usar el signo y el asterisco?
- 29. ¿Qué hace el operador/= en C#?
- 30. C#: ¿Cuándo debería usar TryParse?
OK, eso es lo que son ... ¿Podrían dar más detalles cuando lo quieran? – NotMe