हां यह करता है। हमेशा के रूप में, सी # भाषा विनिर्देश निश्चित स्रोत है।
सी # 3 युक्ति से, खंड 7.12 (बजाय 4 v3, के रूप में v4 कल्पना गतिशील विवरण जो यहाँ वास्तव में प्रासंगिक नहीं हैं में चला जाता है):
अभिव्यक्ति a ?? b
के प्रकार पर निर्भर करता है जो निहित रूपांतरण ऑपरेंड के प्रकारों के बीच उपलब्ध हैं। वरीयता के क्रम में, एक प्रकार का ?? बी ए 0, ए, या बी है, जहां ए ए का प्रकार है, बी बी का प्रकार है (बशर्ते बी में एक प्रकार है), और ए 0 अंतर्निहित प्रकार ए है यदि ए एक शून्य प्रकार है, या अन्यथा ।
- एक नल प्रकार या एक संदर्भ प्रकार, एक संकलन समय त्रुटि होती है एक नहीं है: विशेष रूप से,
a ?? b
रूप इस प्रकार संसाधित किया जाता है।
- यदि ए एक नामुमकिन प्रकार है और बी से ए 0 से एक अंतर्निहित रूपांतरण मौजूद है, तो परिणाम प्रकार A0 है। रन-टाइम पर, पहले मूल्यांकन किया जाता है। यदि शून्य नहीं है, तो ए 0 टाइप करने के लिए अनचाहे है, और यह परिणाम बन जाता है। अन्यथा, बी का मूल्यांकन किया गया है और ए 0 टाइप करने के लिए परिवर्तित किया गया है, और यह परिणाम परिणाम बन जाता है।
- अन्यथा, यदि कोई अंतर्निहित रूपांतरण बी से ए में मौजूद है, तो परिणाम प्रकार ए रन-टाइम पर, पहले मूल्यांकन किया जाता है। यदि कोई शून्य नहीं है, तो परिणाम बन जाता है। अन्यथा, बी का मूल्यांकन किया जाता है और टाइप ए में परिवर्तित हो जाता है, और यह परिणाम परिणाम बन जाता है।
- अन्यथा, यदि बी में एक प्रकार बी है और एक अंतर्निहित रूपांतरण A0 से बी से मौजूद है, तो परिणाम प्रकार बी है। रन-टाइम पर, का पहला मूल्यांकन किया जाता है। यदि शून्य नहीं है, तो A0 टाइप करने के लिए अनचाहे है (जब तक ए और ए 0 समान प्रकार नहीं हैं) और प्रकार बी में परिवर्तित किया गया है, और यह परिणाम बन गया है। अन्यथा, बी मूल्यांकन किया गया है और परिणाम बन गया है।
- अन्यथा, ए और बी असंगत हैं, और एक संकलन-समय त्रुटि होती है।
दूसरा, तीसरा और चौथा गोलियां प्रासंगिक हैं।
वहाँ एक दार्शनिक चर्चा है कि क्या संकलक आपको उपयोग के लिए हो वास्तविक सच्चाई का स्रोत है के बारे में किया जा रहा है ... एक भाषा यह क्या मतलब करना है के बारे में सच है या वर्तमान में यह है?
स्रोत
2010-06-23 16:42:56
पैर नोट पर ... मुझे लगता है कि हम सभी एरिक लिपर्ट का आनंद ले रहे हैं :) –
@ मैथ्यू: कई कारणों में से एक, हां। एरिक का एक दिलचस्प पहलू यह है कि वह spec * और * कंपाइलर दोनों के मानव अवतार के रूप में कार्य कर सकता है ... –