Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179

    Che differenza c'è null e nothing in vb.net?

    Che differenza c'è null e nothing nelle variabili in vb.net?
    Tony

  2. #2
    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.

  3. #3
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    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

  4. #4
    Originariamente inviato da tony83
    a quindi null e nothing sono la stessa cosa:
    No, non sono la stessa cosa; indicano due cose diverse.
    null indica i db
    Esatto, i campi senza valore dei DB.
    nothing le variabili vb.net
    generalmente le variabili non inizializzate hanno un valore nothing!
    Solo le variabili di tipi di riferimento, ossia le variabili di classe; non potrai mai assegnare nothing ad una variabile intero o struttura.
    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 Sub
    Tranni per asp che funziona in maniera diversa giusto?
    Non conosco asp, ma se funziona come VB6 anche lì Nothing significa "puntatore nullo".
    in vb null erano le variabile senza tipo o meglio di tipo null?
    "Null" era un sottotipo del tipo di variabili Variant, ossia un Variant inizializzato ma non contenente dati validi.
    "Nothing" era quello che è anche in VB.NET, ossia un puntatore ad oggetto nullo.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    ma perchè non posso fare:

    Dim pippo As String = Nothing

    è nullo cioè nothing!!

    no?
    Tony

  6. #6
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    certo inizializzi una variabile a nothing.

  7. #7
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    per a integer no!!
    Tony

  8. #8
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    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....

  9. #9
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    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.
    ma sempre la parola chiave nothing devo usare per inizializzarlo a nullo ..

    quindi nothing non può essere usato per le variabili di classe di tipo integer
    e per variabili struttura?

    giusto?
    Tony

  10. #10
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    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....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.