Opérateurs (Visual C# Express)
Mise à jour : novembre 2007
En C#, les opérateurs ont une syntaxe semblable à celle d'autres langages de programmation de type C. Les opérateurs servent à faire des calculs, à assigner des valeurs à des variables, à vérifier l'égalité ou l'inégalité et à effectuer d'autres opérations.
Les sections suivantes répertorient certains des opérateurs les plus couramment utilisés en C#. Pour une liste complète de tous les opérateurs, consultez Opérateurs C#.
Opérateurs d'assignation et d'égalité
En C#, l'opérateur de signe égal (=) a les mêmes fonctions que dans C et C++ :
Opérateur |
But |
---|---|
= |
Assigne une valeur. |
== |
Vérifie l'égalité. |
Exemple
int x = 100;
if (x == 100)
{
System.Console.WriteLine("X is equal to 100");
}
Opérateurs mathématiques et logiques
Les éléments suivants sont une liste d'opérateurs mathématiques de base, classés par ordre de priorité. Utilisez des parenthèses pour forcer un autre classement.
Opérateur |
But |
---|---|
*, /, % |
Multiplication, division, module |
+, - |
Addition, soustraction |
& |
AND logique |
^ |
XOR logique |
| |
OR logique |
Exemple
int x = 1;
int y = x + 10 * 100; // multiplication first y = 1001
int z = (x + 10) * 100; // addition first z = 1100
Opérateurs d'incrémentation et de décrémentation
Les raccourcis de style de C/C++ sont pris en charge, y compris les opérateurs de suffixe et de préfixe, comme dans les exemples suivants :
Opérateur |
But |
---|---|
v++ |
Incrémenter la variable v d'une unité. |
v+=n |
Incrémenter la variable v de n unités. |
v*=n |
Multiplier la variable v par n. |
v-=n |
Soustraire n de la variable v. |
Exemple
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);
Opérateurs relationnels
Les opérateurs suivants comparent deux valeurs et retournent un résultat bool :
Opérateur |
But |
---|---|
== |
Vérifie l'égalité. |
!= |
Vérifie l'inégalité. |
> |
Supérieur à. |
< |
Inférieur à. |
>= |
Supérieur ou égal à. |
<= |
Inférieur ou égal à. |
Exemple
int x = int.Parse(System.Console.ReadLine());
if (x > 100)
{
System.Console.WriteLine("X is greater than 100");
}
Opérateurs conditionnels logiques
Les opérateurs logiques servent à créer des instructions de condition plus flexibles en combinant plusieurs clauses :
Opérateur |
But |
---|---|
&& |
AND conditionnel. |
|| |
OR conditionnel. |
! |
NOT conditionnel. |
Exemple
int x = int.Parse(System.Console.ReadLine());
if ((x >= 100) && (x <= 200))
{
System.Console.WriteLine("X is between 100 and 200");
}
Opérateurs mathématiques plus évolués
Pour effectuer des opérations mathématiques plus évoluées, par exemple de trigonométrie, utilisez la classe Math du Frameworks. Dans cet exemple, les méthodes Sin (sinus) et Sqrt (racine carrée), et constante PI sont utilisées :
Exemple
double d = System.Math.Sin(System.Math.PI/2);
double e = System.Math.Sqrt(144);
Surcharge d'opérateur
C# prend en charge la surcharge d'opérateur ; cela vous permet de redéfinir des opérateurs pour qu'ils soient plus explicites en cas d'utilisation avec vos propres types de données. Dans l'exemple suivant, un struct est créé, et il stocke un jour de la semaine dans un type de variable défini par une énumération. Pour plus d'informations, consultez Structures (Visual C# Express) et Énumérations (Visual C# Express). L'opérateur d'addition est surchargé pour pouvoir ajouter un nombre entier de jours au jour actuel et retourner un nouveau jour de la semaine. Ainsi, dimanche auquel est ajouté un jour retourne lundi.
Exemple
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());
}
}