खैर, यह conditional operator के रूप में काफी एक ही नहीं है, लेकिन मुझे लगता है कि आप null coalescing operator की सोच रहे हैं (??)। (मुझे लगता है कि आपने कहा था कि यह "समान" था :) ध्यान दें कि "टर्नरी" केवल ऑपरेटरों के ऑपरेंड की संख्या को संदर्भित करता है - इसलिए सशर्त ऑपरेटर एक टर्नरी ऑपरेटर है, तो नल कोलेसिंग ऑपरेटर एक बाइनरी ऑपरेटर है।
result = first ?? second;
यहाँ second
केवल तभी first
रिक्त है मूल्यांकन किया जाएगा:
यह मोटे तौर पर इस रूप लेता है। इसे असाइनमेंट का लक्ष्य नहीं होना चाहिए - उदाहरण के लिए, आप विधि तर्क का मूल्यांकन करने के लिए इसका उपयोग कर सकते हैं।
ध्यान दें कि पहले ऑपरेंड में शून्य होने के लिए है - लेकिन दूसरा नहीं है। हालांकि रूपांतरणों के आस-पास कुछ विशिष्ट विवरण हैं, सरल मामले में समग्र अभिव्यक्ति का प्रकार दूसरे ऑपरेंड का प्रकार है। संबद्धता के कारण, आप ऑपरेटर का उपयोग करता है बड़े करीने से भी ढेर कर सकते हैं:
int? x = GetValueForX();
int? y = GetValueForY();
int z = GetValueForZ();
int result = x ?? y ?? z;
नोट कैसे x
और y
नल हैं, लेकिन z
और result
नहीं हैं। बेशक, z
नामुमकिन हो सकता है, लेकिन फिर result
भी शून्य हो सकता है।
असल में ऑपरेटरों का मूल्यांकन कोड में दिखाई देने के क्रम में किया जाएगा, मूल्यांकन के साथ जब यह एक गैर-शून्य मूल्य प्राप्त होता है।
ओह, और हालांकि उपरोक्त मान प्रकारों के संदर्भ में दिखाया गया है, यह संदर्भ प्रकारों के साथ भी काम करता है (जो हमेशा शून्य है)।
स्रोत
2010-10-13 16:14:40
संभावित डुप्लिकेट -> http: // stackoverflow।कॉम/प्रश्न/463155/कैसे-द-टर्नरी-ऑपरेटर-काम –
@ जूनियर लेकिन यह टर्नरी ऑपरेटर के बारे में है, जबकि यह कोलेसिंग ऑपरेटर (शीर्षक के बावजूद) – Rup
@ जूनियर के बारे में है, जबकि मेरे प्रश्न का शीर्षक एक है यदि आप मेरा प्रश्न पढ़ते हैं तो थोड़ा भ्रामक आप देखेंगे कि आपके द्वारा सुझाए गए डुप्लिकेट के साथ इसका कोई लेना-देना नहीं है। –