क्या "Manah "मौजूद नहीं है, तो कॉन्फ़िगरेशन मैनजर .AppSettings [" ब्लाह "] एक अपवाद फेंक देगा?


124

अगर "blah" वेब / app.config में मौजूद नहीं है, तो configurationManager.AppSettings ["blah"] एक अपवाद फेंक देगा?

सुपर आलसी सवाल के लिए ईमानदारी से माफी।


5
-1: चूंकि आप पहले ही महसूस कर चुके हैं कि यह एक आलसी प्रश्न है, तो क्या वास्तव में इस प्रश्न को यहाँ पोस्ट करने से कम काम नहीं होगा ?
लास वी। कार्लसन जूल 6'10

या NameValueCollection.Itemसंपत्ति के लिए दस्तावेज
टिम रॉबिन्सन

2
जवाब देने वालों का शुक्रिया। मैं कोशिश करूँगा और इन जैसे सवालों की आदत नहीं डालूँगा।
बेन एस्टन

49
Pfh। कृपया इस तरह से सवाल पूछना जारी रखें क्योंकि मैं और बाकी दुनिया के गूगल कॉन्फ़िगरेशनमैन गैर-मौजूद कुंजी के साथ ऐपलेटिंग करते हैं क्योंकि यह एमएसडीएन को पार्स करने की तुलना में आसान है। कुछ भी जो जीवन को थोड़ा आसान बनाता है IMO। उपविभाजित क्योंकि एफ उन Dbags।
कोरी मोवह्टर

31
अपने आलसी प्रश्न को देखें 4 साल और गिनती के अन्य लोगों को कुछ मिनटों की बचत करें। :)
मैट बेकमैन

जवाबों:



25

NameValueCollection.Item प्रॉपर्टी (स्ट्रिंग) के लिए MSDN प्रलेखन से :

सावधान

यह गुण निम्न मामलों में शून्य देता है: 1) यदि निर्दिष्ट कुंजी नहीं मिली है; और 2) यदि निर्दिष्ट कुंजी मिली है और उसका संबद्ध मूल्य शून्य है। यह संपत्ति दो मामलों के बीच अंतर नहीं करती है।


7

नहीं, लौटता है null

AppSettings NameValueCollection - NameValueCollection.Get पृष्ठ पर सावधानी के अनुसार है :

यह विधि निम्नलिखित मामलों में एक अशक्त संदर्भ (विजुअल बेसिक में कुछ भी नहीं) लौटाती है: 1) यदि निर्दिष्ट कुंजी नहीं मिली है; और 2) यदि निर्दिष्ट कुंजी पाई जाती है और इसका संबद्ध मूल्य एक अशक्त संदर्भ है (नथिंग इन विजुअल बेसिक)। यह विधि दो मामलों के बीच अंतर नहीं करती है।


6

नहीं, लौटता है null

ConfigurationManager.AppSettingsMSDN प्रलेखनNameValueCollection से एक है :

प्राप्त विधि शून्य के बीच अंतर नहीं करती है जो कि लौटा दी जाती है क्योंकि निर्दिष्ट कुंजी नहीं मिली है और अशक्त है जो वापस आ गई है क्योंकि कुंजी के साथ जुड़ा हुआ मूल्य शून्य है।

(मेरा जोर)


3

अन्य जवाब आइटम की संपत्ति के लिए प्रलेखन का संदर्भ देते हैं। यह तुरंत स्पष्ट नहीं हो सकता है कि वे निम्नलिखित कोड स्निपेट को क्यों देख रहे हैं।

ConfigurationManager.AppSettings["blah"]

अनुक्रमणिका तक पहुँचने के लिए वर्ग ब्रैकेट सिंटैक्स का उपयोग C # में किया जाता है। ये विशेष गुण हैं जो एक वर्ग को उसी तरह अनुक्रमित करने की अनुमति देते हैं जो एक सरणी हो सकती है। NameValueCollection.Item प्रॉपर्टी की परिभाषा को देखते हुए , आप देखेंगे कि यह सामान्य प्रॉपर्टी सिंटैक्स का उपयोग नहीं करता है। इस प्रॉपर्टी को इंडेक्सर के रूप में परिभाषित करने के लिए इस कीवर्ड और इंडेक्सर मापदंडों का उपयोग किया जाता है।

public string this[
    string name
] { get; set; }

दस्तावेज़ीकरण में, इंडेक्सर्स को स्पष्ट रूप से आइटम का नाम दिया गया है और पैरामीटर वर्ग कोष्ठक से घिरा हुआ है।

MSDN दस्तावेज़ में दिखाए गए अनुसार अनुक्रमणिका।

मेरे लिए यह स्पष्ट नहीं है कि ऐसे जवाब क्यों थे जो गेट विधि का संदर्भ देते थे - शायद एक दूसरे को बुलाता है?

किसी भी दर पर, सवाल का जवाब देने के लिए ...

यदि आप एक गैर-मौजूद कुंजी का उपयोग करते हैं तो एक अपवाद नहीं फेंका जाएगा - एक नल वापस कर दिया जाएगा।

यहाँ NameValueCollection.Item संपत्ति प्रलेखन से संबंधित अनुभाग है ।

यह गुण निम्न मामलों में शून्य देता है: 1) यदि निर्दिष्ट कुंजी नहीं मिली है; और 2) यदि निर्दिष्ट कुंजी मिली है और उसका संबद्ध मूल्य शून्य है। यह संपत्ति दो मामलों के बीच अंतर नहीं करती है।


-2

हाँ http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx

संपादित करें: यह स्पष्ट रूप से गलत है। नीचे उपयोगी टिप्पणियों के लिए छोड़ दिया।


1
आपके प्रश्न का उत्तर @Tim जैसा नहीं है। पृष्ठ ने सिर्फ इतना कहा कि यदि ऐपेटिंग लोड नहीं कर पा रहे हैं तो एक अपवाद को फेंक दिया जाता है। लेकिन अगर कोई मूल्य सिर्फ एप्लेटिंग में मौजूद नहीं है तो आपको अपवाद नहीं मिलेगा। यह वास्तव में एक त्रुटि को फेंकने के लिए समझ में नहीं आएगा क्योंकि एक शब्दकोष में एक मूल्य मौजूद नहीं है। लेकिन अगर शब्दकोश मौजूद नहीं था, तो वह एक त्रुटि फेंकने का एक कारण होगा। (शब्द शब्दकोश का इस्तेमाल सिर्फ एक मनमाने संग्रह को संदर्भित करने के लिए किया गया था।)
जूल

उस लिंक का कहना है कि यदि अपवाद NameValueCollectionनहीं मिला है , तो अपवाद को फेंक दिया जाता है - अर्थात सिस्टम को कोई सेटिंग नहीं मिल सकती है । नाम मान संग्रह एक अपवाद को नहीं फेंकते हैं जब आप एक एकल मान को पुनः प्राप्त करने का प्रयास करते हैं जो मौजूद नहीं है ..
Dexter
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.