Condividi tramite


Operatore == (Riferimenti per C#)

Aggiornamento: novembre 2007

Per i tipi di valore predefiniti, l'operatore di uguaglianza (==) restituisce true se i valori degli operandi sono uguali e false in caso contrario. Per i tipi di riferimento diversi da string, l'operatore == restituisce true se i due operandi si riferiscono allo stesso oggetto. Per il tipo string, l'operatore == confronta i valori delle stringhe.

Note

I tipi di valore definiti dall'utente possono eseguire l'overload dell'operatore == (per ulteriori informazioni, vedere operator, al pari dei tipi di riferimento definiti dall'utente, sebbene, in base all'impostazione predefinita, l'operatore == si comporti come descritto in precedenza sia per tipi di riferimento predefiniti che per quelli definiti dall'utente. Se si esegue l'overload dell'operatore ==, è necessario sottoporre a overload anche l'operatore !=. Le operazioni sui tipi integrali sono generalmente consentite sull'enumerazione.

Esempio

class Equality
{
    static void Main()
    {
        // Numeric equality: True
        Console.WriteLine((2 + 2) == 4);

        // Reference equality: different objects, 
        // same boxed value: False.
        object s = 1;
        object t = 1;
        Console.WriteLine(s == t);

        // Define some strings:
        string a = "hello";
        string b = String.Copy(a);
        string c = "hello";

        // Compare string values of a constant and an instance: True
        Console.WriteLine(a == b);

        // Compare string references; 
        // a is a constant but b is an instance: False.
        Console.WriteLine((object)a == (object)b);

        // Compare string references, both constants 
        // have the same value, so string interning
        // points to same reference: True.
        Console.WriteLine((object)a == (object)c);
    }
}
/*
Output:
True
False
True
False
True
*/

Vedere anche

Concetti

Guida per programmatori C#

Riferimenti

Operatori di C#

Altre risorse

Riferimenti per C#