私が知る限りでは、辞書オブジェクトキーは、それが存在するかのように参照するだけで作成されます。
wscript.echo objDic.Item("test") 'Creates the key whether it exists or not
wscript.echo objDic.Exists("test") 'Will now return true
ここでは、私の理論を証明したりテストしたりするためのコードがいくつかあります。私は通常、WScript.Echoの代わりにMsgBoxを使用しています。これは私のコードで分かります。
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
出典
2012-05-07 02:23:03
HK1
絶対に正しいです。 [公式のドキュメント](http://msdn.microsoft.com/en-us/library/84k9x471%28VS.84%29.aspx)には、「もし* key *が見つからなければ、新しい*キー*が作成され、対応するアイテムが空のままになります。 –
新しい質問が表示され、この質問を再訪する際、私は最後にこの質問を見たときと同じように、存在しない場合のキーの作成がどのように役立つかについて同様に混乱しています。誰でもこれの背後にある理由を説明できますか?私はこれがcompに根ざしていると仮定することができます。 sci。辞書オブジェクトに関する理論? – user66001
@ user66001実用的なプログラマーとして、私はこのようなものがなぜそのように設計されているのか、これらの種類の癖を思い出すことについてもっと心配しているのではないかと心配しています。 – HK1