Operatori (Visual C# Express)
Aggiornamento: novembre 2007
In C# la sintassi degli operatori è simile a quella di altri linguaggi di programmazione basati su C. Gli operatori vengono utilizzati per eseguire calcoli, assegnare valori a variabili, testare l'uguaglianza o la disuguaglianza ed eseguire altre operazioni.
Nelle sezioni seguenti vengono elencati alcuni degli operatori più utilizzati nel linguaggio C#. Per un elenco completo di tutti gli operatori, vedere Operatori di C#.
Operatori di assegnazione e di uguaglianza
In C#, l'operatore del segno di uguale (=) ha la stessa funzionalità che in C e C++:
Operatore |
Funzione |
---|---|
= |
Assegna un valore. |
== |
Esegue il test per verificare l'uguaglianza. |
Esempio
int x = 100;
if (x == 100)
{
System.Console.WriteLine("X is equal to 100");
}
Operatori matematici e logici
Di seguito viene riportato un elenco di operatori matematici di base, in ordine di precedenza. Utilizzare le parentesi per imporre un altro ordine.
Operatore |
Funzione |
---|---|
*, /, % |
Moltiplicazione, divisione, modulo |
+, - |
Addizione, sottrazione |
& |
AND logico |
^ |
XOR logico |
| |
OR logico |
Esempio
int x = 1;
int y = x + 10 * 100; // multiplication first y = 1001
int z = (x + 10) * 100; // addition first z = 1100
Operatori di incremento e decremento
I collegamenti di tipo C/C++ sono supportati, compresi gli operatori suffissi e prefissi, come illustrato negli esempi seguenti:
Operatore |
Funzione |
---|---|
v++ |
Incrementare la variabile v di un'unità. |
v+=n |
Incrementare la variabile v di n unità. |
v*=n |
Moltiplicare la variabile v per n unità. |
v-=n |
Sottrarre n unità dalla variabile v. |
Esempio
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);
Operatori relazionali.
Gli operatori riportati di seguito confrontano due valori e restituiscono un risultato Booleano:
Operatore |
Funzione |
---|---|
== |
Esegue il controllo per verificare l'uguaglianza. |
!= |
Esegue il controllo per verificare la disuguaglianza. |
> |
Maggiore di |
< |
Minore di |
>= |
Maggiore o uguale a |
<= |
Minore o uguale a |
Esempio
int x = int.Parse(System.Console.ReadLine());
if (x > 100)
{
System.Console.WriteLine("X is greater than 100");
}
Operatori logici di condizione
Gli operatori logici vengono utilizzati per creare istruzioni di condizione più flessibili tramite la combinazione di più clausole:
Operatore |
Funzione |
---|---|
&& |
AND condizionale. |
|| |
OR condizionale. |
! |
NOT condizionale. |
Esempio
int x = int.Parse(System.Console.ReadLine());
if ((x >= 100) && (x <= 200))
{
System.Console.WriteLine("X is between 100 and 200");
}
Operatori matematici più avanzati
Per eseguire operazioni matematiche più avanzate, ad esempio di trigonometria, utilizzare la classe Math di Frameworks. Nell'esempio seguente, vengono utilizzati i metodi Sin (seno), Sqrt (radice quadrata) e la costante PI:
Esempio
double d = System.Math.Sin(System.Math.PI/2);
double e = System.Math.Sqrt(144);
Overload dell'operatore
C# supporta l'overload dell'operatore, mediante cui è possibile ridefinire gli operatori per renderli più significativi se utilizzati con tipi di dati personalizzati. Nell'esempio riportato di seguito, viene creata una struttura che archivia un singolo giorno della settimana in un tipo di variabile definito da un'enumerazione. Per ulteriori informazioni, vedere°Strutture (Visual C# Express) e Enumerazioni (Visual C# Express). L'overload dell'operatore di addizione viene eseguito per consentire l'aggiunta di un numero integer di giorni al giorno corrente e restituire un nuovo giorno della settimana. In questo modo, con l'aggiunta di un giorno domenica restituisce lunedì.
Esempio
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());
}
}
Vedere anche
Concetti
Nozioni di base del linguaggio C#