मैं एक सी # नौसिखिया हूं और मैं सिर्फ एक समस्या का सामना करता हूं। टर्नीरी ऑपरेटर ( ? :
) के साथ काम करते समय C # और Java में अंतर होता है ।
निम्नलिखित कोड सेगमेंट में, 4th लाइन काम क्यों नहीं करती है? कंपाइलर एक त्रुटि संदेश दिखाता है there is no implicit conversion between 'int' and 'string'
। 5 वीं पंक्ति भी काम नहीं करती है। दोनों ही List
वस्तुएं हैं, क्या वे नहीं हैं?
int two = 2;
double six = 6.0;
Write(two > six ? two : six); //param: double
Write(two > six ? two : "6"); //param: not object
Write(two > six ? new List<int>() : new List<string>()); //param: not object
हालाँकि, जावा में समान कोड काम करता है:
int two = 2;
double six = 6.0;
System.out.println(two > six ? two : six); //param: double
System.out.println(two > six ? two : "6"); //param: Object
System.out.println(two > six ? new ArrayList<Integer>()
: new ArrayList<String>()); //param: Object
C # में कौन सी भाषा सुविधा गायब है? यदि कोई है, तो इसे क्यों नहीं जोड़ा गया है?
int
कोई वस्तु नहीं है। यह एक आदिम है।
ArrayList<String>
और ArrayList<Integer>
बस ArrayList
बाईटकोड में हो जाना। इसका मतलब है कि वे रन-टाइम में बिल्कुल उसी प्रकार के प्रतीत होते हैं । C # में स्पष्ट रूप से वे विभिन्न प्रकार के होते हैं।