Checked y Unchecked (Referencia de C#)Checked and Unchecked (C# Reference)

Las instrucciones de C# se pueden ejecutar en un contexto comprobado o no comprobado.C# statements can execute in either checked or unchecked context. En un contexto no comprobado, el desbordamiento aritmético produce una excepción.In a checked context, arithmetic overflow raises an exception. En un contexto sin comprobar, se omite el desbordamiento aritmético y se produce un truncamiento del resultado al descartar los bits de orden superior que no caben en el tipo de destino.In an unchecked context, arithmetic overflow is ignored and the result is truncated by discarding any high-order bits that don't fit in the destination type.

  • checked Especifica un contexto comprobado.checked Specify checked context.

  • unchecked Especifica un contexto no comprobado.unchecked Specify unchecked context.

Las siguientes operaciones se ven afectadas por la comprobación del desbordamiento:The following operations are affected by the overflow checking:

  • Expresiones que usan los siguientes operadores predefinidos en tipos integrales:Expressions using the following predefined operators on integral types:

    ++, --, - unario, +, -, *, /++, --, unary -, +, -, *, /

  • Conversiones numéricas explícitas entre tipos integrales o de float o double a un tipo integral.Explicit numeric conversions between integral types, or from float or double to an integral type.

Si no se especifica checked ni unchecked, el contexto predeterminado para expresiones no constantes (expresiones que se evalúan en tiempo de ejecución) se define por medio del valor de la opción del compilador /checked.If neither checked nor unchecked is specified, the default context for non-constant expressions (expressions that are evaluated at run time) is defined by the value of the -checked compiler option. De forma predeterminada, el valor de esa opción se desactiva y se ejecutan operaciones aritméticas en un contexto sin comprobar. By default the value of that option is unset and arithmetic operations are executed in an unchecked context.

Para expresiones constantes (expresiones que se pueden evaluar completamente en tiempo de compilación), el contexto predeterminado se comprueba siempre.For constant expressions (expressions that can be fully evaluated at compile time), the default context is always checked. A menos que se coloque de forma explícita una expresión constante en un contexto sin comprobar, los desbordamientos que se producen durante la evaluación de tiempo de compilación de la expresión dan lugar a errores en tiempo de compilación.Unless a constant expression is explicitly placed in an unchecked context, overflows that occur during the compile-time evaluation of the expression cause compile-time errors.

Vea tambiénSee Also