जैसा कि मैं कह सकता हूं, एक शब्दकोश ऑब्जेक्ट कुंजी केवल इसे संदर्भित करके बनाया गया है, हालांकि यह अस्तित्व में है।
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
बिल्कुल सही। यहां [आधिकारिक दस्तावेज़ीकरण] (http://msdn.microsoft.com/en-us/library/84k9x471%28VS.84%29.aspx) है, जो उल्लेख करता है, "अगर * कुंजी * वापस करने का प्रयास करते समय नहीं मिला मौजूदा आइटम, एक नया * कुंजी * बनाया गया है और इसकी संबंधित वस्तु खाली छोड़ दी गई है। " –
इस सवाल की समीक्षा में नए जवाब से संकेत मिलता है, मैं इस तरह की उलझन में हूं कि एक कुंजी का निर्माण कैसे अस्तित्व में नहीं है, यह सहायक है, क्योंकि जब मैंने पिछली बार इस प्रश्न को देखा था। क्या कोई इसके पीछे कारण बता सकता है? मैं केवल यह मान सकता हूं कि यह COMP में निहित है। विज्ञान। शब्दकोश वस्तुओं के बारे में सिद्धांत ?? – user66001
@ user66001 एक व्यावहारिक प्रोग्रामर के रूप में, मुझे इस बारे में कम चिंता है कि ऐसा कुछ क्यों बनाया गया है और इस तरह के क्विर्क को याद रखने के बारे में और चिंता करें। – HK1