शब्दकोश (C # या अन्यथा) बस एक कंटेनर हैं जहां आप एक कुंजी के आधार पर एक मूल्य देखते हैं। कई भाषाओं में इसे अधिक सही ढंग से मानचित्र के रूप में पहचाना जाता है जिसमें सबसे सामान्य कार्यान्वयन हैशपॉप है।
विचार करने के लिए समस्या यह है कि क्या होता है जब एक कुंजी मौजूद नहीं होती है। कुछ भाषाओं में वापस लौट कर व्यवहार करते हैं null
या nil
या कुछ अन्य समान मूल्य। चुपचाप एक मूल्य के लिए डिफ़ॉल्ट रूप से आपको सूचित करने के बजाय कि एक मूल्य मौजूद नहीं है।
बेहतर या बदतर के लिए, सी # लाइब्रेरी डिजाइनर व्यवहार से निपटने के लिए एक मुहावरे के साथ आए। उन्होंने तर्क दिया कि जो मान मौजूद नहीं है, उसे देखने के लिए डिफ़ॉल्ट व्यवहार अपवाद को फेंकना है। यदि आप अपवादों से बचना चाहते हैं, तो आप Try
वेरिएंट का उपयोग कर सकते हैं । यह वही दृष्टिकोण है जो वे पूर्णांक या दिनांक / समय ऑब्जेक्ट में तार को पार्स करने के लिए उपयोग करते हैं। अनिवार्य रूप से, प्रभाव इस प्रकार है:
T count = int.Parse("12T45"); // throws exception
if (int.TryParse("12T45", out count))
{
// Does not throw exception
}
और उस शब्दकोष को आगे बढ़ाया, जिसका अनुक्रमणिका प्रतिनिधि को निम्नलिखित में से Get(index)
:
var myvalue = dict["12345"]; // throws exception
myvalue = dict.Get("12345"); // throws exception
if (dict.TryGet("12345", out myvalue))
{
// Does not throw exception
}
यह केवल भाषा के डिजाइन का तरीका है।
क्या out
चर को हतोत्साहित किया जाना चाहिए ?
C # उनके पास होने वाली पहली भाषा नहीं है, और विशिष्ट परिस्थितियों में उनका उद्देश्य है। यदि आप एक उच्च समवर्ती प्रणाली का निर्माण करने का प्रयास कर रहे हैं, तो आप out
समवर्ती सीमाओं पर चर का उपयोग नहीं कर सकते हैं।
कई मायनों में, अगर कोई मुहावरा है जो भाषा और कोर लाइब्रेरी प्रदाताओं द्वारा जासूसी करता है, तो मैं अपने एपीआई में उन मुहावरों को अपनाने की कोशिश करता हूं। यह एपीआई को उस भाषा में अधिक सुसंगत और घर पर महसूस कराता है। तो रूबी में लिखी एक विधि C #, C, या पायथन में लिखी गई विधि की तरह नहीं लग रही है। प्रत्येक के पास कोड बनाने का एक पसंदीदा तरीका है, और इसके साथ काम करने से आपके एपीआई के उपयोगकर्ताओं को इसे और अधिक तेज़ी से जानने में मदद मिलती है।
क्या मानचित्र सामान्य रूप से प्रतिरूप हैं?
उनके पास अपना उद्देश्य होता है, लेकिन कई बार वे आपके द्वारा लिए गए उद्देश्य के लिए गलत समाधान हो सकते हैं। विशेष रूप से यदि आपके पास एक द्वि-दिशात्मक मानचित्रण है जिसकी आपको आवश्यकता है। डेटा को व्यवस्थित करने के कई कंटेनर और तरीके हैं। कई दृष्टिकोण हैं जो आप उपयोग कर सकते हैं, और कभी-कभी आपको उस कंटेनर को लेने से पहले थोड़ा सोचने की आवश्यकता होती है।
यदि आपके पास द्वि-दिशात्मक मानचित्रण मूल्यों की बहुत छोटी सूची है, तो आपको केवल टुपल्स की सूची की आवश्यकता हो सकती है। या संरचनाओं की एक सूची, जहां आप मानचित्रण के दोनों ओर पहला मैच आसानी से पा सकते हैं।
समस्या डोमेन के बारे में सोचें, और नौकरी के लिए सबसे उपयुक्त उपकरण चुनें। यदि कोई नहीं है, तो इसे बनाएं।