Operadores (Visual C# Express)
Actualización: noviembre 2007
En C#, los operadores tienen una sintaxis similar a otros lenguajes de programación de estilo C. Los operadores se utilizan para hacer cálculos, asignar valores a variables, comprobar la igualdad o desigualdad, y realizar otras operaciones.
En las secciones siguientes se muestran algunos de los operadores normalmente utilizados en C#. Para obtener una lista de todos los operadores, vea Operadores de C#.
Operadores de asignación e igualdad
En C#, el operador signo igual (=) tiene la misma funcionalidad que en C y C++:
Operador |
Finalidad |
---|---|
= |
Asigna un valor. |
== |
Comprueba la igualdad. |
Ejemplo
int x = 100;
if (x == 100)
{
System.Console.WriteLine("X is equal to 100");
}
Operadores matemáticos y lógicos
La siguiente lista muestra los operadores matemáticos básicos en orden de prioridad. Utilice paréntesis para imponer otro orden.
Operador |
Finalidad |
---|---|
*, /, % |
Multiplicación, división, módulos |
+, - |
Suma, resta |
& |
AND lógico |
^ |
XOR lógico |
| |
OR lógico |
Ejemplo
int x = 1;
int y = x + 10 * 100; // multiplication first y = 1001
int z = (x + 10) * 100; // addition first z = 1100
Operadores de incremento y decremento
Los accesos directos de estilo de C y C++ son compatibles, incluso los operadores de postfijo y prefijo, como se muestra en estos ejemplos:
Operador |
Finalidad |
---|---|
v++ |
Incrementar variable v por 1. |
v+=n |
Incrementar variable v por n. |
v*=n |
Multiplicar variable v por n. |
v-=n |
Restar n de variable v. |
Ejemplo
int x = 0;
int y = x++; // x is 1, y is 0
System.Console.WriteLine("{0} {1}", x, y);
int z = ++x; // x is 2, z is 2
System.Console.WriteLine("{0} {1}", x, z);
Operadores relacionales
Los siguientes operadores comparan dos valores y devuelven un resultado booleano:
Operador |
Finalidad |
---|---|
== |
Comprobar igualdad. |
!= |
Comprobar desigualdad. |
> |
Mayor que |
< |
Menor que |
>= |
Mayor o igual que |
<= |
Menor o igual que |
Ejemplo
int x = int.Parse(System.Console.ReadLine());
if (x > 100)
{
System.Console.WriteLine("X is greater than 100");
}
Operadores lógicos de condición
Los operadores lógicos se utilizan para crear instrucciones de condición más flexibles combinando varias cláusulas:
Operador |
Finalidad |
---|---|
&& |
AND condicional. |
|| |
OR condicional. |
! |
NOT condicional. |
Ejemplo
int x = int.Parse(System.Console.ReadLine());
if ((x >= 100) && (x <= 200))
{
System.Console.WriteLine("X is between 100 and 200");
}
Operadores matemáticos más avanzados
Para realizar operaciones matemáticas más avanzadas, por ejemplo, trigonométricas, utilice la clase Math de .NET Framework. En este ejemplo, se utilizan los métodos Sin (seno) y Sqrt (raíz cuadrada) y la constante PI:
Ejemplo
double d = System.Math.Sin(System.Math.PI/2);
double e = System.Math.Sqrt(144);
Sobrecarga de operadores
C# admite sobrecarga de operadores; esto permite volver a definir los operadores para que tengan más sentido cuando se utilizan con tipos de datos propios. En el siguiente ejemplo, se crea una estructura que almacena un solo día de la semana en un tipo de variable definido por una enumeración. Para obtener más información, vea Estructuras (Visual C# Express) y Enumeraciones (Visual C# Express). El operador de suma se sobrecarga para que se pueda agregar un número entero de días al día actual y devolver un nuevo día de la semana. De este modo, domingo, con un día agregado, devuelve lunes.
Ejemplo
using System;
// Define an DayOfWeek data type
enum DayOfWeek { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };
// Define a struct to store the methods and operators
struct Day
{
private DayOfWeek day;
// The constructor for the struct
public Day(DayOfWeek initialDay)
{
day = initialDay;
}
// The overloaded + operator
public static Day operator +(Day lhs, int rhs)
{
int intDay = (int)lhs.day;
return new Day((DayOfWeek)((intDay + rhs) % 7));
}
// An overloaded ToString method
public override string ToString()
{
return day.ToString();
}
}
public class Program
{
static void Main()
{
// Create a new Days object called "today"
Day today = new Day(DayOfWeek.Sunday);
Console.WriteLine(today.ToString());
today = today + 1;
Console.WriteLine(today.ToString());
today = today + 14;
Console.WriteLine(today.ToString());
}
}