सी # में एक सशर्त ऑपरेटर, एक ऑपरेटर है जो तीन ऑपरेंड लेता है (स्थितियों की जांच की जाती है), मूल्य जब स्थिति सही होती है और मूल्य जब स्थिति झूठी होती है।
सशर्त संकारक को प्रतीक '?:' द्वारा प्रदर्शित किया जाता है। पहला ऑपरेंड ('?:' से पहले निर्दिष्ट) मूल्यांकन (सशर्त) अभिव्यक्ति है। यह ऐसा होना चाहिए कि संकलन त्रुटियों से बचने के लिए मूल्यांकित अभिव्यक्ति के प्रकार को अंतर्निहित रूप से 'बूल' में परिवर्तित किया जा सके या ऑपरेटर को लागू किया जा सके। दूसरा और तीसरा ऑपरेंड सशर्त अभिव्यक्ति के प्रकार को नियंत्रित करते हैं। यह अधिक बार असाइनमेंट में उपयोग किया जाता है न कि संकलन त्रुटियों को उत्पन्न करने वाले कथन के रूप में।
यदि पहले ऑपरेंड (सशर्त अभिव्यक्ति) का रिटर्न मान सत्य है, तो दूसरे ऑपरेंड का मूल्यांकन किया जाता है। अन्यथा, तीसरे ऑपरेंड का मूल्यांकन किया जाता है। इसलिए, सशर्त ऑपरेटर का परिणाम मूल्यांकन के लिए विचारित अभिव्यक्ति के मूल्यांकन का परिणाम है।
एक्स?ए:बी के रूप में वर्णित अभिव्यक्ति के लिए, ऑपरेंड ए का मूल्यांकन किया जाएगा यदि केवल ऑपरेंड एक्स (सशर्त अभिव्यक्ति) सत्य लौटाता है। अन्यथा, ऑपरेंड बी का मूल्यांकन किया जाएगा।
इस शब्द को टर्नरी ऑपरेटर या इनलाइन if (iif) के रूप में भी जाना जाता है।
एक सशर्त ऑपरेटर सी # में एकमात्र टर्नरी ऑपरेटर (तीन ऑपरेंड लेते हुए) है। यह if-else कंस्ट्रक्शन के विकल्प के रूप में बनता है, जो कम कोड और बेहतर पठनीयता के साथ बेहतर संक्षिप्तता प्रदान करता है। संकलन के दौरान, C# कंपाइलर टर्नरी एक्सप्रेशन को ब्रांच स्टेटमेंट्स में ट्रांसलेट करता है, जो कई if स्टेटमेंट्स को कंडेन्स कर सकता है और सोर्स कोड के स्तर पर नेस्टिंग को कम कर सकता है। कभी-कभी, टर्नरी ऑपरेटर के लिए उत्पन्न कोड कुछ निर्देशों को पुन: व्यवस्थित करके प्रदर्शन को बढ़ा सकता है।
एक सशर्त ऑपरेटर के गुण हैं:
- यह दाएँ-सहयोगी है, जिसका अर्थ है कि संचालन समूहबद्ध रूप से दाएँ से बाएँ होते हैं।
- यह हमेशा सशर्त ऑपरेटर प्रतीक के बाद निर्दिष्ट दो भावों में से एक का मूल्यांकन करता है। यह कभी दोनों का मूल्यांकन नहीं करता।
- पहला ऑपरेंड इंटीग्रल या पॉइंटर प्रकार का होना चाहिए।
- दूसरे और तीसरे ऑपरेंड को एक दूसरे के लिए परिवर्तनीय होना चाहिए और पारस्परिक रूप से किसी अन्य प्रकार में परिवर्तनीय नहीं होना चाहिए।
- परिणाम का प्रकार सामान्य प्रकार है, जो एक एल-वैल्यू है, लेकिन केवल अगर दूसरे और तीसरे ऑपरेंड एक ही प्रकार के हैं और दोनों एल-वैल्यू हैं।
- केवल असाइनमेंट कॉल, इंक्रीमेंट, डिक्रीमेंट और न्यू ऑब्जेक्ट एक्सप्रेशन को स्टेटमेंट के रूप में इस्तेमाल किया जा सकता है।
- जब टर्नरी ऑपरेटर का उपयोग कर अभिव्यक्ति के मूल्यांकन का परिणाम विधि वापसी विवरण में उपयोग किया जाता है, तो इसके प्रकार को सफल संकलन के लिए संलग्न विधि के वापसी प्रकार से मेल खाना चाहिए।
- जब परिणाम स्थिर नहीं होता है, तो सशर्त अभिव्यक्ति का प्रकार दो प्रकारों में से अधिक सामान्य एक पर आधारित होता है।
0 Comments