Proprietà (confronto tra C# e Java)

Aggiornamento: novembre 2007

In C# una proprietà è un membro denominato di una classe, di una struttura o di un'interfaccia che consente di accedere facilmente ai campi privati tramite i cosiddetti metodi della funzione di accessoget e set.

Nell'esempio di codice riportato di seguito viene dichiarata una proprietà denominata Species per la classe Animal, che astrae l'accesso alla variabile privata denominata name:

public class Animal
{
    private string name;

    public string Species
    {
        get
        {
            return name;
        }
        set
        {
            name = value;
        }
    }
}

La proprietà ha spesso lo stesso nome del membro interno a cui accede, ma con la lettera iniziale maiuscola, come Name nell'esempio precedente, oppure il membro interno è preceduto da un prefisso _. Notare inoltre il parametro implicito, denominato value, utilizzato nella funzione di accesso set. A tale parametro è associato il tipo della variabile membro sottostante.

Le funzioni di accesso in realtà vengono rappresentate internamente come metodi get_X() e set_X() per garantire la compatibilità con i linguaggi basati su .NET Framework, che non supportano le funzioni di accesso. Una volta definita una proprietà, è molto facile ottenerne o impostarne il valore:

class TestAnimal
{
    static void Main()
    {
        Animal animal = new Animal();
        animal.Species = "Lion";                   // set accessor
        System.Console.WriteLine(animal.Species);  // get accessor

    }
}

Se una proprietà è dotata solo di una funzione di accesso get, è una proprietà in sola lettura. Se invece è dotata solo di una funzione di accesso set, è una proprietà in sola scrittura. Se infine è dotata di entrambe le funzioni di accesso, è una proprietà di lettura/scrittura.

Vedere anche

Concetti

Guida per programmatori C#

Riferimenti

Proprietà (Guida per programmatori C#)

Altre risorse

Linguaggio di programmazione C# per sviluppatori Java