Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    null reference exception su varibili string

    salve....ho dichiarato alcune variabili come semplicissime stringhe

    le uso all'interno di alcune strutture decisionali in base ad alcuni parametri passati alla function del caso...

    purtroppo mi ritrovo alcune di queste var stringa sottolineate di verde....se ci metto il mouse sopra mi dice "Variable ZZZ is used before it has been assigned a value. A null reference exception could result at runtime"

    ....dal che mi pare di capire che secondo l'intellisense ho usato la variabile prima di dargli un valore....

    me la sottolinea in un codice tipo questo

    codice:
    If OperazioneAND <> "" Then
    ...                    
    else
    ...               
    End If
    nella riga IF THEN mi sottolinea la varibile stringa...

    come mai ?
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

  2. #2
    Posta l'intero codice.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao, devi fare attenzione, una variabile stringa a cui non è stato assegnato nessun valore, contiene il valore Nothing, cioè non punta a nessuna sequenza di caratteri. Pertanto è normale (dipende dalle impostazione dell'ambiente di sviluppo) che ti dia un messaggio di warning, in quanto si potrebbe incorrere nell'errore di confrontare tale stringa con una costante..quando in realtà non punta a niente.
    esempio:
    Dim s as string
    if s="" then sicuramente avrai un errore in fase di compilazione, in quanto s=nothing
    per evitare errori dovresti fare if s Is Nothing then...

    mentre:
    Dim s as string=""
    in questo caso non avrai nessun messaggio di warning e non incorri in errori di cui sopra
    Jupy

  4. #4

    Re: null reference exception su varibili string

    Originariamente inviato da RAVALON
    salve....ho dichiarato alcune variabili come semplicissime stringhe

    le uso all'interno di alcune strutture decisionali in base ad alcuni parametri passati alla function del caso...

    purtroppo mi ritrovo alcune di queste var stringa sottolineate di verde....se ci metto il mouse sopra mi dice "Variable ZZZ is used before it has been assigned a value. A null reference exception could result at runtime"

    ....dal che mi pare di capire che secondo l'intellisense ho usato la variabile prima di dargli un valore....

    me la sottolinea in un codice tipo questo

    codice:
    If OperazioneAND <> "" Then
    ...                    
    else
    ...               
    End If
    nella riga IF THEN mi sottolinea la varibile stringa...

    come mai ?
    Succede perchè l'assegnazione di un valore alla stringa non è risolvibile sempre, ma si annida in una struttura di controllo o in un ciclo e quindi potrebbe non venire inizializzata. Gli unici rimedi sono: 1. Fregarsene, perchè si è sicuri che debba cmq venire inizalizzata; 2. Fare come ha detto Jupy64 e inzializzarla nella dichiarazione Dim S As String = "" o anche Dim S As String = Nothing.

  5. #5
    Grazie per le risposte...

    in effetti utilizzavo già, anche se non lo avevo scritto, l'inizializzazione

    Dim s as string=""

    e solo dopo facevo il controllo con IF THEN ELSE

    solo che su quella variabile l'avevo saltato :rollo:

    è per questo che non riesco a capire perchè mi da errore....un valore, seppure vuoto ("") ce l'ha...

    scusate e grazie comunque per la gentile attenzione
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

  6. #6
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Originariamente inviato da RAVALON
    Grazie per le risposte...

    in effetti utilizzavo già, anche se non lo avevo scritto, l'inizializzazione

    Dim s as string=""

    e solo dopo facevo il controllo con IF THEN ELSE

    solo che su quella variabile l'avevo saltato :rollo:

    è per questo che non riesco a capire perchè mi da errore....un valore, seppure vuoto ("") ce l'ha...
    Se dichiari una variabile cosi Dim s as string senza inizializzarla, NON è vero che ha un valore vuoto!!! Una variabile dichiarata in quella maniea, non punta a niente(che è diverso dal dire che è vuota!) cioè è uguale a nothing
    s="" non è uguale a s=nothing
    Jupy

  7. #7
    mentre:
    Dim s as string=""
    in questo caso non avrai nessun messaggio di warning e non incorri in errori di cui sopra
    io cosi ho fatto....
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,482
    Originariamente inviato da RAVALON
    io cosi ho fatto....
    Ti hanno già dato un suggerimento, non seguito: posta il codice (che include ovviamente l'uso della variabile, non solo la dichiarazione o il confronto).
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    era solo una puntualizzazione....ho fatto quanto suggerito ed ho risolto....per cui non c'è bisogno di postare niente altro...
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,482
    Originariamente inviato da RAVALON
    era solo una puntualizzazione....ho fatto quanto suggerito ed ho risolto....per cui non c'è bisogno di postare niente altro...
    Ah pardon, pensavo che fosse un'affermazione del tipo "così ho fatto, ma non ho risolto".

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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 © 2026 vBulletin Solutions, Inc. All rights reserved.