Che differenza c'è null e nothing nelle variabili in vb.net?
Che differenza c'è null e nothing nelle variabili in vb.net?
Tony
Nothing rappresenta un puntatore che non punta a niente (se mi passi questa definizione), Null ha come scopo principale la rappresentazione dei valori Null nei database; in VB6 la faccenda era lievemente diversa perché Null era anche un tipo di dato che poteva assumere il Variant.
Amaro C++, il gusto pieno dell'undefined behavior.
a quindi null e nothing sono la stessa cosa:
null indica i db
nothing le variabili vb.net
generalmente le variabili non inizializzate hanno un valore nothing!
Tranni per asp che funziona in maniera diversa giusto?
giusto?
in vb null erano le variabile senza tipo o meglio di tipo null?
Tony
No, non sono la stessa cosa; indicano due cose diverse.Originariamente inviato da tony83
a quindi null e nothing sono la stessa cosa:
Esatto, i campi senza valore dei DB.null indica i db
Solo le variabili di tipi di riferimento, ossia le variabili di classe; non potrai mai assegnare nothing ad una variabile intero o struttura.nothing le variabili vb.net
generalmente le variabili non inizializzate hanno un valore nothing!
codice:Public Class TestClasse Public x As Integer End Class Public Structure TestStruttura Public x As Integer End Structure Public Sub Main() Dim Classe As TestClasse Dim Struttura As TestStruttura Dim Intero As Integer Console.WriteLine(Classe.x) '->Viene generata un'eccezione NullReferenceException, perchè la variabile "Classe" è un puntatore ad un oggetto TestClasse che non punta a niente Console.WriteLine(Classe Is Nothing) '->Visualizza True, Classe è un puntatore nullo Console.WriteLine(Struttura.x) '->Visualizza 0, le strutture sono tipi By Value e la variabile "Struttura" non è un puntatore ma è effettivamente un'"istanza" della struttura Console.WriteLine(Intero) '->Visualizza 0 per lo stesso motivo End SubNon conosco asp, ma se funziona come VB6 anche lì Nothing significa "puntatore nullo".Tranni per asp che funziona in maniera diversa giusto?
"Null" era un sottotipo del tipo di variabili Variant, ossia un Variant inizializzato ma non contenente dati validi.in vb null erano le variabile senza tipo o meglio di tipo null?
"Nothing" era quello che è anche in VB.NET, ossia un puntatore ad oggetto nullo.
Amaro C++, il gusto pieno dell'undefined behavior.
ma perchè non posso fare:
Dim pippo As String = Nothing
è nullo cioè nothing!!
no?
Tony
Null è un valore che può essere assunto da varibili di tipo primitivo e significa "nessun valore assegnato"
Nothing è l'equivalente per le variabili di tipo oggetto.
Scusate i puntini di sospensione...... La verità è che non ho argomenti....
ma sempre la parola chiave nothing devo usare per inizializzarlo a nullo ..Originariamente inviato da kalosjo
Null è un valore che può essere assunto da varibili di tipo primitivo e significa "nessun valore assegnato"
Nothing è l'equivalente per le variabili di tipo oggetto.
quindi nothing non può essere usato per le variabili di classe di tipo integer
e per variabili struttura?
giusto?
Tony
Per variabili struttura mi viene il dubbio, per variabili primitive (quindi anche integer) sicuramente si utilizza null
Scusate i puntini di sospensione...... La verità è che non ho argomenti....