particolari routine che permettano di leggere e/o impostare i valori di determinate proprietà di una classe e/o di una struct anche se queste sono state dichiarate private e quindi inaccessibili secondo il principio dell'incapsulamento
si tratta in pratica di metodi "speciali" che restituiscono o scrivono i valori delle variabili della classe e/o di una struct

sintassi: sia per classe che struct
public tipo_valore NOME deve essere public altrimenti non é accessibile dall'esterno
{

get metodo che restituisce il valore tramite return
{
return nome_campo
}

set metodo per modificare il valore, tramite value (assegnazione)
{
nome_campo = value
}
}



esempio: proprietà di una classe
public class Persona classe Persona creata
{

string mNome;

......

public string Nome proprietà Name
{
get metodo che restituisce il valore di mNome
{
return mNome;
}

set metodo che modifica il valore di mNome
{
mNome = value;
}
}
}



esempio: proprietà di una struct
vedi esempio nella struct



creazione oggetto sia per classe che struct
Persona p = new Persona("Marco", "Minerva"); creo oggetto



utilizzo oggetto:


a seconda della richiesta se di visualizzare o scrivere la proprità eseguirà il metodo richiesto.



differenze con l'utilizzo delle variabili pubbliche:

usare le proprietà rispetto alle variabili pubbliche (public) permette:



esempio: controllo che il valore inserito per le modifica non sia vuoto
public string Nome
{

get
{
return mNome;
}


set
{
if (value == string.Empty)
mNome = "(Nessun nome)";
else
mNome = value;
}
}