Vicino come posso dire, un dizionario chiave oggetto viene creato semplicemente riferimento a esso come se esiste.
wscript.echo objDic.Item("test") 'Creates the key whether it exists or not
wscript.echo objDic.Exists("test") 'Will now return true
Ecco un altro codice per provare/testare la mia teoria. Di solito uso MsgBox invece di WScript.Echo, come vedrai nel mio codice.
dim objDic, brk
brk = vbcrlf & vbcrlf
set objDic = createobject("scripting.dictionary")
objDic.add "test","I have not been deleted"
wscript.echo "objDic.Exists(""test""): " & brk & objDic.item("test")
WScript.Echo "Now going to Remove the key named: test"
objDic.remove "test"
MsgBox "objDic.Exists(""test""): " & brk & objDic.Exists("test") 'Returns False
wscript.echo "objDic.item(""test""): " & brk & objDic.item("test") 'Shows Blank, Creates the key again with a blank value
wscript.echo "objDic.item(""NeverAdded""): " & brk & objDic.item("NeverAdded") 'Also shows blank, does not return an error
MsgBox "objDic.Exists(""test""): " & brk & objDic.Exists("test") 'Returns True
Assolutamente corretto. Ecco la [documentazione ufficiale] (http://msdn.microsoft.com/en-us/library/84k9x471%28VS.84%29.aspx), che menziona, "Se * chiave * non viene trovata quando si tenta di restituire un elemento esistente, viene creata una nuova * chiave * e l'elemento corrispondente viene lasciato vuoto. " –
Promosso dalla nuova risposta, nel rivisitare questa domanda, sono altrettanto confuso su come la creazione di una chiave, se non esiste, è utile, come lo sono stato quando ho guardato l'ultima volta questa domanda. Qualcuno può spiegare le ragioni dietro a questo? Posso solo supporre che questo sia radicato in comp. sci. teorie sugli oggetti del dizionario ?? – user66001
@ user66001 Come programmatore pragmatico, mi preoccupo meno del perché qualcosa del genere sia progettato così com'è e si preoccupi di più di ricordare questi tipi di stranezze. – HK1