C’è qualche differenza tra vbNullString e “”?

In VBA, presenterà alcuna differenza se metto a confronto una stringa, o simili, contro vbNullString invece che contro una stringa vuota; ""? Se è così che differenze ci sono tra le due?

InformationsquelleAutor eirikdaude | 2015-09-07

 

2 Replies
  1. 16

    vbNullString e "" sono diversi. Ecco una pagina web estratto che viene descritto l’utilizzo della memoria differenze.


    “Questo è il solito modo per cancellare una variabile stringa.

    Text$ = ""

    Che spreco! Prima di tutto, la stringa "" prende 6 byte di RAM ogni volta che lo si utilizza. Considerare l’alternativa:

    Text$ = vbNullString

    Così che cosa è questo? vbNullString è una speciale VB costante che denota una stringa null. Il "" letterale è una stringa vuota. C’è una differenza importante. Una stringa vuota è una vera e propria collana. Una stringa null non è. Si tratta solo di uno zero. Se si conosce il linguaggio C, vbNullString è l’equivalente di NULL.

    Per la maggior parte degli scopi, vbNullString è equivalente a "" in VB. L’unica differenza pratica è che vbNullString è più veloce di assegnare e di processo e richiede meno memoria.

    Se si chiama non-VB API o di un componente, prova le chiamate con vbNullString prima di distribuire la vostra applicazione. La funzione che si sta chiamando non potrebbe controllare una stringa NULL, nel qual caso potrebbe bloccarsi. Non VB funzioni di controllo NULL, prima dell’elaborazione di un parametro di stringa. Con la sfortuna, la particolare funzione che si sta chiamando non farlo. In questo caso, utilizzare "". Di solito le Api supportano vbNullString e si può eseguire anche meglio!”


    Il resto di questo articolo ha ulteriori informazioni sull’ottimizzazione delle stringhe che possono essere perspicace così.

    Pagina web completa: http://www.aivosto.com/vbtips/stringopt.html

  2. 8

    Questo confronto afferma che l’assegnazione di "" a una variabile usa 6 byte di memoria mentre utilizzando la vbNullString di non utilizzare alcuna memoria.

    Personalmente, preferisco valutare la lunghezza di una stringa. Se la lunghezza è 0, allora possiamo anche arrivare alla conclusione che la stringa è un vbNullString o "". Questo metodo è accettato come il più veloce metodo di controllo per un vbNullString.

    If Len(string) = 0 Then

    È possibile leggere un Len vs vbNullString vs "" confronto qui.

    • Sembra buono, a meno che qualcuno carillon con ulteriori informazioni, ti segna come soluzione. Tuttavia, questo ultimo articolo è collegato a indica che c’è una differenza, anche se l’autore non sa di cosa si tratta. Naturalmente potrebbe essere qualcosa di semplice come la memoria che esso assume quando viene assegnato a una variabile, come indicate in precedenza in una tua risposta.
    • C’è una differenza, "" è già presente una stringa di lunghezza zero, vbNullString è un puntatore nullo di tipo String (non fa riferimento a una stringa). Al fine di confrontare VB nasconde la differenza, ma a volte si vuole, scoprirla.
    • Il 2 ° link è morto: questo è un archivio

Lascia un commento