Condividi tramite


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#

Riferimenti

Operatori di C#