Operadores de C#
Actualización: Julio de 2008
C# proporciona un amplio conjunto de operadores, que son símbolos que especifican las operaciones que se deben realizar en una expresión. Generalmente se permiten en las enumeraciones las operaciones de tipos integrales como ==, !=, <, >, <=, >=, binary +, binary -, ^, &, |, ~, ++, -- y sizeof(). Además, el usuario puede sobrecargar muchos de los operadores, es decir, cambiar su significado al aplicarlos a un tipo definido por el usuario.
En la tabla siguiente se muestran los operadores de C# agrupados por orden de prioridad. Los operadores dentro de cada de grupo tienen la misma prioridad.
Categorías |
Operadores |
---|---|
Principal |
|
Unario |
|
Multiplicativo |
|
Sumatorio |
|
Desplazamiento |
|
Comprobación de tipos y relacionales |
|
Igualdad |
|
AND lógico |
|
XOR lógico |
|
OR lógico |
|
AND condicional |
|
OR condicional |
|
Condicional |
|
Asignación |
|
Uso combinado de Null |
|
Lambda |
Desbordamiento aritmético
Los operadores aritméticos (+, -, *, /) pueden producir resultados fuera del intervalo de valores posibles para el tipo numérico implicado. Aunque para encontrar información detallada, debe consultar la sección acerca del operador específico; en general, podemos decir:
El desbordamiento aritmético de enteros produce una excepción de desbordamiento (OverflowException) o bien elimina los bits más significativos del resultado. La división de enteros por cero siempre produce una excepción DivideByZeroException.
El desbordamiento aritmético o la división por cero en punto flotante no producen una excepción, ya que los tipos de punto flotante se basan en el estándar IEEE 754, que proporciona una representación para los valores infinito y NaN (Not a Number, no es un número).
El desbordamiento aritmético de valores de tipo decimal siempre produce una excepción OverflowException. La división de decimales por cero siempre produce una excepción DivideByZeroException.
Cuando se produce un desbordamiento de enteros, lo que ocurre depende del contexto de la ejecución, el cual puede ser checked o unchecked. En un contexto checked (comprobado), se produce una excepción OverflowException. En un contexto unchecked (no comprobado), los bits más significativos del resultado no se tienen en cuenta y la ejecución continúa. De esta forma, C# permite elegir entre atender o desatender el desbordamiento.
Además de los operadores aritméticos, las conversiones entre tipos integrales también pueden producir desbordamiento; por ejemplo, al convertir un tipo long en un tipo int, y están sometidas al tipo de ejecución checked o unchecked. Sin embargo, los operadores bit a bit y los operadores de desplazamiento nunca producen desbordamiento.
Vea también
Tareas
Conceptos
Referencia
Operadores sobrecargables (Guía de programación de C#)
Otros recursos
Historial de cambios
Fecha |
Historial |
Motivo |
---|---|---|
Julio de 2008 |
Se ha movido el operador ?? fuera de la categoría de asignación por sugerencia del cliente. |
Corrección de errores de contenido. |