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
App. WinForms / WPF .NET
Differenza tra tipi REFERENZE E VALUE
domenica 04 marzo 2012 - 14.32
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
C#
|
VB.NET
|
.NET 4.0
|
Windows 7
|
Visual Studio 2010
zirobyte75
Profilo
| Newbie
15
messaggi | Data Invio:
dom 4 mar 2012 - 14:32
Devo scrivere una breve descrizione tra questi due tipi. Documentandomi ho scritto un breve trafiletto, ma credo che sia incompleto. Volevo la vostra opinione e magari aiuto. INOLTRE CORTESEMENTE SE MI AIUTATE A TROVARE QUALCOSA O MI AIUTATE A SPIEGARE come creare un tipo VALUE e uno REFERENCE. GRAZIE!!!!
ISTANZIARE UN OGGETTO:
Istanziare un oggetto, significa CREARLO. Si crea un nuoivo oggetto con l'istruzione DIM Oggetto as New Object ... NEW crea fisicamente l'oggetto in memoria.
TIPI REFERENCE, VALUE e NOTHING:
Ogni cosa nel Framework è un oggetto e la maggior parte di questi oggetti, sono tipi REFERENCE ovvero tutti quei tipi DERIVATI dalla classe System.Object
Attraverso l'istruzione di assegnamento "=" es. A=100 il valore 100 viene inserito nella casella di memoria che la variabile occupa. Con l'utilizzo dei tipi REFERENCE questo non accade. COn l'utilizzo dell'uguale per assegnare un valore alle variabili, anzichè il "valore", viene inserito nell'area di memoria un PUNTATORE. Il puntatore è una speciale variabile, che anzichè contenere il valore, contiene un indirizzo, di una detrminata area di memoria, che contiene altri dati. Il puntaore viene memorizzato sullo STACK, mentre l'oggetto viene creato e inserito in un area di memoria differente(Heap Managed).
NOTHING: Questà è una costante di tipo Reference che rappresenta l'assenza di un oggetto. Porre un variabile a Nothing equivale a distruggerla.
TIPI VALUE:
Ogni variabile di tipo VALUE deriva dalla classe System.ValueType che deriva da System.Object, ma ne ridefinisce i metodi. Questo tipo di variabili, contengono l'effettivo valore e non un punatatore a questo. Questo tipo presentano un vanataggio in termini di memoria e velocità: occupano meno spazio e non vi è la necessità di referenziare un puntatore per ottenere o impostare i valori(nota: referenziare un puntaore significa recarsi all'indirizzo di memoria puntato e leggerne il contenuto). Se la variabile viene distrutta, cessa di esistere all'istante e non è necessario attuare nessun rilascio delle risorse.
VERIFICARE SE UN OGGETTO ESISTE O SE E' LA COPIA DI UN ALTRO:
Quando si lavora con i tipi Reference, occorre prestare molta attenzione quando si utilizzano gli operatori di assegnamento. I tipi Reference, come abbiamo già detto contengono un puntatore, quindi con le istruzioni:
Dim A,B As Object
A=B
A non avrà un valore identico a B ma un PUNTATORE alla stessa area di memoria di B ... in altre parole sono lo stesso oggetto! Per verificare che lo siano, si utilizza l'operatore IS che permette di verificare che due variabili, puntino allo stesso oggetto.
Ad esempio MsgBox(A Is B) darà come risultato True.
Se utilizziamo invece Is per comparare un oggetto a Nothing, stiamo dicendo di verificare che l'oggetto sia stato distrutto.
Quanto appena detto, non vale per i tipi Value. Quando ad un tipo Value si assegna un altro valore utilizzando l'operatore "=", si passa ad esso una COPIA del valore.
Quando possibile è meglio utilizzare i tipi Value, in quanto non sprecano risorse e tempo.
MANCA QUALCOSA?
se riesci a pensarlo puoi anche realizzarlo!
http://www.youtube.com/user/zirobyte75
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 !