operadores de C#

C# proporciona un amplio conjunto de operadores, que son símbolos que especifican las operaciones que se deben realizar en una expresión.Operaciones con tipos enteros como ==, !=, <, >, <=, >=, binary +, binary -, ^, &,|, ~, ++, -- y sizeof() son enumeraciones permitidas en general.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

x.y

f(x)

a[x]

x++

x--

new

typeof

checked

unchecked

default(T)

delegado

sizeof

->

Unario

+x

-x

! x

~x

++x

--x

(T)x

espera

&x

*x

Multiplicativo

x * y

x o y

% de y x

Sumatorio

x + y

x - y

Shift

x << y

x >> y

Comprobación de tipos y relacionales

x < y

x > y

y el <= x

y el >= x

es

as

Igualdad

y == x

¡x! = y

AND lógico

x e y

XOR lógico

y ^ x

OR lógico

x | y

AND condicional

y de && x

OR condicional

x || y

Uso combinado de Null

¿x??y

Condicional

?:

Expresión de asignación y lambda

x = y

y de x +=

x - = y

y de *= x

y de x/=

y de x %=

y el &= x

x |= y

y de ^= x

y el <<= x

y el >>= x

=>

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 descarta 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), se descartan los bits más significativos del resultado 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

Referencia

Operadores sobrecargables (Guía de programación de C#)

Palabras clave de C#

Conceptos

Guía de programación de C#

Otros recursos

Referencia de C#

Visual C#