इन 2 के बीच क्या अंतर है? एपीआई दस्तावेज से ऐसा लगता है कि वे एक ही चीज़ करने के लिए थे।अभिव्यक्ति वृक्ष में ArrayAccess बनाम ArrayIndex
बनाम
जो मामले में वे निरर्थक लग रहे हैं, इसलिए मैं कुछ यहाँ याद आ रही किया जाना चाहिए।
इन 2 के बीच क्या अंतर है? एपीआई दस्तावेज से ऐसा लगता है कि वे एक ही चीज़ करने के लिए थे।अभिव्यक्ति वृक्ष में ArrayAccess बनाम ArrayIndex
बनाम
जो मामले में वे निरर्थक लग रहे हैं, इसलिए मैं कुछ यहाँ याद आ रही किया जाना चाहिए।
संपादित करें: मेरा प्रारंभिक उत्तर इतना बुरा गलत था कि मैं फिर कोशिश कर रहा हूं।
Expression.ArrayAccess
एक IndexExpression
देता है जिसका उपयोग किसी सरणी में किसी तत्व के मान को प्राप्त करने या सेट करने के लिए किया जा सकता है।
Expression.ArrayIndex
प्रदान किए गए सरणी अभिव्यक्ति के रैंक (आयामों की संख्या) के आधार पर या तो BinaryExpression
या MethodCallExpression
देता है। लौटाई गई अभिव्यक्ति का उपयोग सरणी से मान पढ़ने के लिए किया जा सकता है।
तो ArrayAccess
आपको एक अभिव्यक्ति देता है जो सरणी डेटा को पढ़ने और लिखने दोनों प्रदान करता है, जबकि ArrayIndex
आपको केवल पढ़ने के लिए पहुंच देता है।
यह वास्तव में अधिभार है, जो एकाधिक पैरामीटर लेता है। – Alwyn
डैन ... याद किया गया कि: पी – Corey
मुझे लगता है कि दोनों कारण मौजूद हैं। अभिव्यक्ति पेड़ नेट 3.5 और नेट 4 के बीच बदल गया है। 3.5 में, अभिव्यक्ति पेड़ असाइनमेंट का समर्थन नहीं करते थे, इसलिए केवल 'ऐरेइंडेक्स' था। 4 के साथ, ऐसी किसी चीज़ की आवश्यकता थी जो किसी सरणी में मान सेट करने की अनुमति दे, इसलिए 'ArrayAccess' जोड़ा गया था। – svick