Lenguaje C# Operadores
Operadores
En C#, un operador es un término o un símbolo que acepta como entrada una o más expresiones,denominadas operandos, y devuelve un valor. Los operadores que requieren un operando, como el
operador de incremento (++) o new, se denominan operadores unarios. Los operadores que requieren dos
operandos, como los operadores aritméticos (+, -, *, /) se denominan operadores binarios. Un operador, el
operador condicional (?:), utiliza tres operandos y es el único operador terciario de C#.
La instrucción de C# siguiente contiene un solo operador unario y un solo operando. El operador de
incremento, ++, modifica el valor del operando "y".
La instrucción de C# siguiente contiene dos operadores binarios, cada uno con dos operandos. El operador
de asignación, =, tiene el entero y y la expresión 2 + 3 como operandos. La propia expresión 2 + 3 contiene el operador de suma y utiliza los valores enteros 2 y 3 como operandos:
Un operando puede ser una expresión válida de cualquier tamaño, compuesta por una cantidad cualquiera
de otras operaciones.
Los operadores de una expresión se evalúan en un orden concreto conocido como prioridad de operadores. La tabla siguiente divide a los operadores en categorías basadas en el tipo de operación que realizan. Las categorías se muestran en orden de prioridad.
Cuando dos operadores con la misma prioridad están presentes en una expresión, se evalúan según su
asociatividad. Los operadores que son asociativos por la izquierda se evalúan en orden de izquierda a
derecha. Por ejemplo, x * y / z se evalúa como (x * y) / z. Los operadores que son asociativos por la derecha se evalúan en orden de derecha a izquierda. Los operadores de asignación y el operador terciario (?:) son asociativos por la derecha. Todos los otros operadores binarios son asociativos por la izquierda. Sin embargo, el estándar de C# no especifica cuándo se ejecuta la parte "fija" de una instrucción de incremento en una expresión.
Por ejemplo, el resultado del código de ejemplo siguiente es 6:
Sin embargo, el resultado del código de ejemplo siguiente es indefinido:
Por consiguiente, no se recomienda el último ejemplo. Los paréntesis se pueden utilizar para envolver una
expresión y hacer que esa expresión sea evaluada antes que cualquier otra. Por ejemplo, 2 + 3 * 2
normalmente darían 8 como resultado. Esto es porque los operadores multiplicativos tienen prioridad sobre
los operadores aditivos. Escribir la expresión (2 + 3 ) * 2 da como resultado 10, ya que ésta indica al
compilador de C# que el operador de adición (+) se debe evaluar antes que el operador de multiplicación (*).
Operadores Sobrecargables
C# permite sobrecargar operadores en los tipos definidos por el usuario, mediante la definición, con lapalabra clave operator, de funciones miembro estáticas. No obstante, no todos los operadores se pueden
sobrecargar y algunos presentan restricciones, como se indica en la siguiente tabla:
Sobrecargar un operador en una clase personalizada requiere la creación de un método en la clase con la
firma correcta. El método se debe denominar "operador X", donde X es el nombre o símbolo del operador
que se va a sobrecargar. Los operadores unarios tienen un parámetro y los operadores binarios tienen dos.
No hay comentarios:
Publicar un comentario