[#]Get e Set

mercoledì 31 gennaio 2007 - 11.40

danyw3b Profilo | Newbie

Sto studiando le suddette proprietà e ho questo codice:

using System; namespace Wrox.Proprietà { class PropertyMethod { private string foreName; public string ForeName { get { return foreName; } set { if (value.Length > 20) Console.WriteLine("Il valore è maggiore di 20!"); else foreName = value; } } public static void Main(string[] args) { PropertyMethod prova = new PropertyMethod(); prova.ForeName = "George Bush"; Console.WriteLine("Ciao " + prova.ForeName); } } }

Ora, una volta compilato, lo eseguo e in consolle mi viene fuori il saluto personalizzato(Ciao George Bush", ma, una cosa non mi è chiara, get e set che si trovano sopra, a questo punto, a cosa servono?
Software & Web Developer

19018 Profilo | Expert

Get e Set servono e come prova a levarli e vedrai che non verrà stampato nulla

In realtà tu "non vedi" un loro utilizzo esplicito, tu vedi solo prova.ForeName = "George Bush"; e Console.WriteLine("Ciao " + prova.ForeName);.

Quando l'esecuzione del programma arriva a prova.ForeName = "George Bush"; in realtà viene eseguito il codice di set :
set
{
if (value.Length > 20)
Console.WriteLine("Il valore è maggiore di 20!");
else
foreName = value;

}

e quando l'esecuzione arriva a Console.WriteLine("Ciao " + prova.ForeName); in realtà viene eseguito il codice di get :
get
{
return foreName;
}

Ecco tutto, spero di essere stato chiaro!

Stefano Passatordi

http://blogs.dotnethell.it/stem/

danyw3b Profilo | Newbie

Quindi in pratica get e set funzionano in backend effettuando delle verifiche e impostando determinati valori da visualizzare sullo schermo poi, tramite il codice che ho usato io?
Software & Web Developer

19018 Profilo | Expert

>Quindi in pratica get e set funzionano in backend effettuando
>delle verifiche e impostando determinati valori da visualizzare
>sullo schermo poi, tramite il codice che ho usato io?

Esatto se implementi una proprietà con get e set ti basta solo utilizzare direttamente oggetto.proprietà per recuperare o impostare un nuovo valore, proprio come nel tuo esempio.

ciao


Stefano Passatordi

http://blogs.dotnethell.it/stem/

danyw3b Profilo | Newbie

Ok, quindi non potrei impostare un valore senza get e set, giusto?
Software & Web Developer

19018 Profilo | Expert

Certo che puoi, ma dovrai implementare metodi appositi.
Ad esempio :

public void SetName(string n)
{
this.name = n;
}


public string GetName()
{
return this.name;
}


Poi da codice dovrai richiamare SetName() per impostare un valore (simulando il set) oppure GetName per recuperare il valore attuale della proprietà (simulando il get).

In pratica ti conviene sempre usare set e get, altrimenti dovrai comunque implementare tu i metodi per simulare set e get.

bye

Stefano Passatordi

http://blogs.dotnethell.it/stem/

danyw3b Profilo | Newbie

Capito, perfetto, grazie!
Software & Web Developer

19018 Profilo | Expert

Bene ma chiudi il thread per favore se non hai altre domande!

Ciao, alla prossima!


Stefano Passatordi

http://blogs.dotnethell.it/stem/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5