Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Vb2010 - Variabili pubbliche o proprietà di classe.

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

Vb2010 - Variabili pubbliche o proprietà di classe.

Postdi Ivan_J_147 » 29/04/11 08:07

Ciao a tutti,
vorrei farvi una domanda relativa alle classi di vb2010. Immaginate di crearne una e di doverci inserire la variabile ID.
E' meglio creare la variabile come Private e una proprietà pubblica dove gestisco i metodi Get e Set oppure creare la variabile di tipo pubblico e leggere o scrivere il suo valore direttamente? Spero di essermi spiegato decentemente...
So che sono due soluzioni ugualmente funzionanti, ma mi sfugge quali siano vantaggi e svantaggi di ogni alternativa...
Ivan_J_147
Utente Junior
 
Post: 86
Iscritto il: 04/09/06 15:32

Sponsor
 

Re: Vb2010 - Variabili pubbliche o proprietà di classe.

Postdi hydra » 29/04/11 12:18

Usa le variabili. Per capire come lavora un controllo, pensa di voler richiedere un valore che ad esempio sia l'AND di due variabili booleane: se lo dovessi fare con le variabili dovresti leggerti le due variabili e farlo nella classe chiamante, oppure creare un metodo che ti faccia questa operazione e richiamare il metodo. Con le proprietà nel metodo Get puoi inserire il codice, in modo che ti vai a leggere la proprietà e hai subito il valore desiderato senza dover fare ulteriori operazioni.

Codice: Seleziona tutto
public bool RisultatoAnd
{
      get { return A && B; }
}
Avatar utente
hydra
Moderatore
 
Post: 7002
Iscritto il: 19/07/04 08:06
Località: Vallis Duplavis

Re: Vb2010 - Variabili pubbliche o proprietà di classe.

Postdi Ivan_J_147 » 29/04/11 14:05

ok, se avessi bisogno di risultati "composti", o se quando assegno dei valori alle variabili avessi bisogno di modificare di conseguenza altre variabili, userei delle proprietà. Il fatto è che dovrei semplicemente leggere e scrivere il valore delle variabili, cioè posso fare così:

Codice: Seleziona tutto
private connessioneAutomatica as boolean

Public Property prp_connessioneAutomatica() As Boolean
        Get
            Return connessioneAutomatica
        End Get
        Set(value As Boolean)
            connessioneAutomatica = value
        End Set
    End Property


oppure così:
Codice: Seleziona tutto
public connessioneAutomatica as boolean

e quindi da un'altro modulo:
Codice: Seleziona tutto
sistema.connessioneAutomatica=true


Mi chiedevo se, tralasciando il discorso di leggibilità del codice, una soluzione sia più funzionale/performante dell'altra.
Ivan_J_147
Utente Junior
 
Post: 86
Iscritto il: 04/09/06 15:32

Re: Vb2010 - Variabili pubbliche o proprietà di classe.

Postdi hydra » 29/04/11 15:13

Le variabili sono variabili, ossia porzioni di memoria che ti permettono di memorizzare qualcosa. Le proprietà si usano per definire delle proprietà o impostazioni per qualche particolare classe/controllo. Nessuno ti vieta di fare tutto con le proprietà, ma è uno spreco inutile oltre che essere concettualmente sbagliato.

Ivan_J_147 ha scritto:ok, se avessi bisogno di risultati "composti", o se quando assegno dei valori alle variabili avessi bisogno di modificare di conseguenza altre variabili, userei delle proprietà.

Non è proprio così, per fare queste cose ci sono i metodi. Di solito le proprietà si usano nei controlli, mentre ci possono essere casi in cui li utilizzi nelle classi; io ad esempio qualche tempo fa ho scritto una libreria per un protocollo nella quale ho dichiarato una proprietà Connected in sola lettura, che mi ritornava lo stato della connessione che variava in base a diversi parametri. Oppure lo si può usare, adesso che c'è il problema dell'UAC, per determinare se l'applicazione sta girando con privilegi amministrativi.

Per farti capire meglio, pensa di doverti creare un controllo che contiene un bottone e una casella di testo e vuoi esporre un metodo per abilitare/disabilitare il controllo. Se lo fai con un metodo, devi disporre un metodo parametrizzato oppure due metodi distinti, uno per abilitare e uno per disabilitare i controlli. Se usi la proprietà, per abilitare il controllo avrai a disposizione il classico Controllo.Enabled = true (sempre che la proprietà tu l'abbia chiamata Enabled), che è esattamente quello che hai per la maggior parte dei controlli. Se invece nell'evento click del pulsante devi far fare qualcosa, non ha senso usare delle proprietà ma i metodi.
Avatar utente
hydra
Moderatore
 
Post: 7002
Iscritto il: 19/07/04 08:06
Località: Vallis Duplavis

Re: Vb2010 - Variabili pubbliche o proprietà di classe.

Postdi Ivan_J_147 » 29/04/11 15:29

Si si sono d'accordo su tutto. ;)
A livello di logica ho capito quando usare una soluzione o l'altra, era più che altro un discorso di velocità ed efficienza.
Grazie 1000 per le risposte!! ;)
Ivan_J_147
Utente Junior
 
Post: 86
Iscritto il: 04/09/06 15:32


Torna a Programmazione


Topic correlati a "Vb2010 - Variabili pubbliche o proprietà di classe.":


Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti