वर्ग # ब्रैकेट के लिए सी # संदर्भ कहता है: स्क्वायर ब्रैकेट [] का उपयोग सरणी, सूचकांक और विशेषताओं के लिए किया जाता है। वे पॉइंटर्स के साथ भी इस्तेमाल किया जा सकता है। (यह भी कहते हैं, सरणी के लिए) यदि एक सरणी सूचकांक सीमा से बाहर है तो एक अपवाद फेंक दिया जाता है।यह निर्धारित करने के लिए कि कौन से अपवाद "x []" फेंक सकते हैं?
तो जब आप किसी सरणी के अलावा किसी अन्य चीज़ पर स्क्वायर ब्रैकेट का उपयोग कर रहे हैं, तो आप कैसे जानते हैं कि अपवादों को फेंक दिया जा सकता है?
एक शब्दकोश (उदाहरण के लिए) यदि आप एक्सेसर तरीकों ऐसे Dictionary.TryGetValue के रूप में आप आसानी से अपवाद है कि विधि फेंक कर सकते हैं देख सकते हैं का उपयोग करें, लेकिन C# reference for square brackets [] केवल यह सरणियों पर सीमा से बाहर सूचकांक के लिए एक अपवाद फेंक सकता है कहते हैं।
तो यदि आप कुछ डेटा प्रकार के लिए स्क्वायर ब्रैकेट का उपयोग करना चाहते हैं, तो आप कहां देख सकते हैं कि उस डेटा प्रकार के लिए कौन से अपवाद फेंक दिए जा सकते हैं?
मैंने एक शब्दकोश के एक गैर-सदस्यीय सदस्य तक पहुंचने का प्रयास किया, बस यह देखने के लिए कि क्या होता है, और मुझे KeyNotFoundException मिला। मुझे पता है कि आप NullReferenceException भी प्राप्त कर सकते हैं। यह दस्तावेज कहां है? और पूरी सूची क्या है?
आपको एक सूची की आवश्यकता क्यों है? क्या एक सामान्य 'पकड़ (अपवाद पूर्व) काम नहीं करेगा? – DiskJunky
@ डिस्कजंकी, सामान्य अपवाद को पकड़ना सबसे खराब अभ्यास है (जब आप इसे लॉग कर सकते हैं और अभी भी बाहर निकल सकते हैं तो शीर्ष स्तर को छोड़कर)। –
@pst सहमत हो गया है, क्योंकि इसे ओवरलोड किया जा सकता है, आप अपने इंडेक्सिंग कार्यान्वयन को कार्यान्वित कर सकते हैं और जो कुछ भी आपको पसंद करते हैं उसे फेंक सकते हैं :) – RobJohnson