निम्नलिखित कोड संकलन नहीं करता है:नल को यहां एक स्पष्ट प्रकार कास्ट क्यों चाहिए?
//int a = ...
int? b = (int?) (a != 0 ? a : null);
आदेश को संकलित करने में, यह
int? b = (a != 0 ? a : (int?) null);
में परिवर्तित करने के बाद से दोनों b = null
और b = a
कानूनी रहे हैं की जरूरत है, यह मेरे लिए कोई मतलब नहीं है ।
हमें null
को int?
में क्यों डालना है और हम पूरी अभिव्यक्ति के लिए एक स्पष्ट प्रकार का कलाकार क्यों नहीं दे सकते (जिसे मैं अन्य मामलों में संभव जानता हूं)?
मुझे लगता है कि संकलक आपको इतने सारे प्रश्न पूछना पसंद नहीं करता है। मेरा मतलब है, आप उनमें से 3 एक ही पंक्ति में पसंद है! – David
यह आपके प्रश्न का उत्तर देना चाहिए कि क्यों: http://stackoverflow.com/questions/2215745/conditional-operator-cannot-cast-implicitly/2215959#2215959। यह सवाल * उस * का एक डुप्लिकेट नहीं है, लेकिन तर्क अभी भी वही है। –
ध्यान दें कि 'int? बी = ए! = 0? (int?) a: null; ' –