मैं निम्नलिखित भाव देख रहा था:स्ट्रिंग क्यों है। जॉइन (स्ट्रिंग, ऑब्जेक्ट []) विशेष?
string.Join(",", new object[] { null, "StackOverflow" })
string.Join(",", new string[] { null, "StackOverflow" })
string.Join(",", new object[] { string.Empty, "StackOverflow" })
string.Join(",", new string[] { string.Empty, "StackOverflow" })
मैं सोचा होगा कि वे एक ही मूल्य वापसी होगी:
,StackOverflow
हालांकि, पहली अभिव्यक्ति वास्तव में string.Empty
देता है। यह is actually defined behavior:
मूल्यों के पहले तत्व रिक्त है, तो शामिल हों (स्ट्रिंग, वस्तु []) विधि मूल्यों में तत्वों को श्रेणीबद्ध नहीं करता है, लेकिन इसके बजाय String.Empty देता है। इस मुद्दे के लिए कई कामकाज उपलब्ध हैं। सबसे आसान उदाहरण स्ट्रिंग के मान को असाइन करना है। सरणी के पहले तत्व के लिए लक्षण, जैसा कि निम्न उदाहरण दिखाता है।
क्या कोई इस विसंगति के पीछे कारण जानता है?
है ("वैकल्पिक हल", "मुद्दा"), मुझे लगता है कि वह एक बग, न कि किसी इच्छित व्यवहार है ... – Vache
@Vache No, यह जानबूझकर कोडित है। इसे देखने के लिए परावर्तक में खोलें .. –
@ श्रीराम सक्थिवेल हाँ मैं इसे देख सकता हूं, लेकिन नीचे दी गई कुछ पंक्तियां इस व्यवहार के साथ विरोधाभासी प्रतीत होती हैं। पहले तत्व के स्ट्रिंग प्रस्तुति के लिए एक शून्य मान को संभालने वाला 'if' है। – Vache