दो वर्गों, एक ही सुपर क्लास के दोनों सन्तान, मान लें इस तरह:सशर्त ऑपरेटर भ्रमित हो जाता है, लेकिन क्यों?
MySuperClass p = myCondition ? new A() : new B();
संकलक शिकायत है कि ए और बी काम नहीं करतीं:
class MySuperClass{}
class A : MySuperClass{}
class B : MySuperClass{}
फिर इस काम संकलक पारित नहीं होगा (सशर्त अभिव्यक्ति का प्रकार निर्धारित नहीं किया जा सकता है क्योंकि 'ए' और 'बी' [CS0173] के बीच कोई अंतर्निहित रूपांतरण नहीं है)। लेकिन वे दोनों प्रकार के MySuperClass हैं, इसलिए मेरी राय में यह काम करना चाहिए। यह नहीं कि यह एक बड़ा सौदा है; कंपाइलर को प्रबुद्ध करने के लिए यह एक साधारण कलाकार है। लेकिन निश्चित रूप से यह सी # कंपाइलर में एक झगड़ा है? क्या आप सहमत नहीं हैं?
यह अक्सर पूछे जाने वाले प्रश्न हैं। उदाहरण के लिए http://stackoverflow.com/questions/2215745 या http://stackoverflow.com/questions/3150086 या http://stackoverflow.com/questions/858080 देखें। इस विषय पर मेरे लेख भी देखें: http://blogs.msdn.com/b/ericlippert/archive/tags/conditional+operator/ –