Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Property o variabili pubbliche ?
mercoledì 19 settembre 2007 - 17.32
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ravalon
Profilo
| Expert
689
messaggi | Data Invio:
mer 19 set 2007 - 17:32
Sto creando una semplice classe che mi serve per abilitare una connessione ad un db MySQL....dispone di pochi semplici campi ed un metodo...
Ho impostato i campi che mi serve controllare come PROPERTY....funziona tutto...imposto e leggo questi campi dove voglio....
...ma noto che anche dichiarando una semplice variabile pubblica ottengo lo stesso risultato, con il vantaggio che la variabile non me la va a caricare ogni volta come invece accade nelle property, dove mi fa il giro per leggere nuovamente il valore...
Domanda forse stupida....che differenza passa tra variabili e property ? quale è la loro utilità ? quale è consigliabile utilizzare nel caso che fossero grossomodo sovrapponibili ?
E' forse che le property dovrebbero servire per l'accesso da classi esterne mentre i campi servono internamente ?
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mer 19 set 2007 - 20:42
>Ho impostato i campi che mi serve controllare come PROPERTY....funziona
>tutto...imposto e leggo questi campi dove voglio....>
>...ma noto che anche dichiarando una semplice variabile pubblica
>ottengo lo stesso risultato, con il vantaggio che la variabile
>non me la va a caricare ogni volta come invece accade nelle property,
>dove mi fa il giro per leggere nuovamente il valore...
>
>Domanda forse stupida....che differenza passa tra variabili e property?
Le variabili, o campi della classe sono informazioni che immagazzinano il valore della caratteristica della classe.
Le proprietà sono un involucro che permette un maggiore livello di sicurezza e di gestione per l'accesso all'informazione salvata nella variabile.
>quale è la loro utilità?
Proprio perchè sono come involucri ti permettono di creare logiche di gestione dell'errore, di configurare il livello di accesso (privati, pubblici, in sola lettura, in sola scrittura o entrambi get/set). Quindi ti "tengono distante" dal campo, che è buona norma rimanga privato ed interamente gestito dalla classe.
>quale è consigliabile utilizzare nel caso che fossero grossomodo sovrapponibili?
Direi le property, sempre per il maggior livello di gestione degli accessi (pensa anche all'ereditarietà, al fatto che a volte puoi solo leggere una info ma non scriverla e viceversa..)
Alx81 =)
http://blogs.dotnethell.it/suxstellino
ravalon
Profilo
| Expert
689
messaggi | Data Invio:
mer 19 set 2007 - 21:47
ti ringrazio delle delucidazioni...quindi più che altro è per un fatto di accessibilità e sicurezza...
..ma come prestazioni sono più onerose ? tramite debug vedo che ogni volta che si usa una property va a rileggersela come se ad ogni ciclo di lettura poi se la scordasse....o succede perchè nel frattempo potrebbe essere cambiata ?
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 20 set 2007 - 01:09
>..ma come prestazioni sono più onerose ? tramite debug vedo che
>ogni volta che si usa una property va a rileggersela come se
>ad ogni ciclo di lettura poi se la scordasse....o succede perchè
>nel frattempo potrebbe essere cambiata ?
quello che vedi tramite debug è da considerare fino ad un certo punto in questo caso..
non mi soffermerei sulle prestazioni che una property può avere..
non mi porrei nemmeno il problema..
E' buona norma usarle sempre a mio avviso.. tant'è che anche gli oggetti del framework le usano, ma non usano campi (a meno che non siano costanti)..
Alx81 =)
http://blogs.dotnethell.it/suxstellino
ravalon
Profilo
| Expert
689
messaggi | Data Invio:
gio 20 set 2007 - 08:31
infatti il tuo suggerimento è lo stesso che ho riportato nel mio libro su ASP.NET 2.0....ti ringrazio
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
gio 20 set 2007 - 08:31
alex, scusa se intervengo. Vorrei solo aggiungere quello che ho sentito, per averne anch'io conferma. Purtroppo non mi ricordo se la voce è ufficiale Micorsoft o è di quanlche guru tipo Dino Esposito.
Se dichiariamo una semplice property:
public int Pippo
{
get
{
return _pippo;
}
set
{
_pippo = value;
}
}
private int _pippo = 0;
il compilatore è ottimizzato per ottenere lo stesso risultato di un semplice attributo, avendo quindi tutti i vantaggi di sviluppo della property e la velocità dell'attributo.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 20 set 2007 - 08:46
>alex, scusa se intervengo. Vorrei solo aggiungere quello che
>ho sentito, per averne anch'io conferma. Purtroppo non mi ricordo
>se la voce è ufficiale Micorsoft o è di quanlche guru tipo Dino
>Esposito.
>
>Se dichiariamo una semplice property:
>
>public int Pippo
>{
> get
> {
> return _pippo;
> }
> set
> {
> _pippo = value;
> }
>}
>
>private int _pippo = 0;
>
>il compilatore è ottimizzato per ottenere lo stesso risultato
>di un semplice attributo, avendo quindi tutti i vantaggi di sviluppo
>della property e la velocità dell'attributo.
quoto, ragion per cui non mi preoccuperei delle prestazioni
..
comunque, di solito preferisco farmi anche la gestione dell'errore nella property e usare sempre quella, in modo che il check è demandato nella property.. giusto per leggibilità..
>-----------------------------------------------------------
>Solo chi ha il Caos dentro può generare una stella danzante
>Wamba
Alx81 =)
http://blogs.dotnethell.it/suxstellino
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
gio 20 set 2007 - 08:59
e per la centralizzazione, che non fa mai male
.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
Torna su
Stanze Forum
Elenco Threads
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 !