TOC

This article has been localized into Italian by the community.

Classi:

Proprietà

Le proprietà permettono il controllo degli accessi alle variabili di una determinata classe, favorendo l'accesso dall'esterno in linguaggi orientati agli oggetti come C#. All'interno del capitolo riguardante le classi, ci siamo imbattuti per la prima volta nell'uso di proprietà e il concetto sottostante risulta piuttosto semplice. Le proprietà sono assimilabili a delle combinazioni tra variabili e metodi. Benché non permettano il passaggio di parametri, danno la possibilità di processare il valore prima che venga effettivamente assegnato ad una variabile. Una proprietà consiste di due parti, rappresentate dai metodi get e set, raccolte al suo interno:

private string color;

public string Color
{
    get { return color; }
    set { color = value; }
}

Il metodo get restituisce il valore della variabile, mentre il metodo set serve ad assegnare un valore ad essa. L'esempio è stato reso appositamente il più semplice possibile, ma può essere tranquillamente esteso. Un altro aspetto importante da tenere a mente nelle proprietà è la necessità di dover specificare uno solo dei due metodi, rendendo l'altro opzionale. Di conseguenza, risulta immediato definire proprietà in sola lettura o sola scrittura. Di seguito, un esempio che mostra il perché tali proprietà sono fondamentali:

public string Color
{
    get 
    {
        return color.ToUpper(); 
    }
    set 
    { 
        if(value == "Red")
            color = value; 
        else
            Console.WriteLine("This car can only be red!");
    }
}

Okay, siamo riusciti a rendere la nostra proprietà un pò più interessante. La variabile che contiene il colore può essere così restituita in maiuscolo (dopo l'applicazione del metodo ToUpper(), prima di restituire tale valore), mentre quando andremo ad assegnare un valore a tale variabile, solo il colore rosso ("Red") verrà accettato. Ovviamente questo esempio potrà non sembrare particolarmente utile, ma risulta utile per comprendere le potenzialità del costrutto di proprietà.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!