2013-10-29 6 views
5

हाल ही में सी # में रिक्त स्ट्रिंग prepending द्वारा, मैं निम्नलिखित बयान काफी एक बहुत कुछ देखा है:स्ट्रिंग के लिए वस्तुओं परिवर्तित

object o; 
// assign o 
return "" + o; 

(मूल रूप से एक ही return String.Concat(o); के रूप में)

क्यों किसी को क्या करना चाहते हैं उस? ऑब्जेक्ट पर केवल .ToString() पर कॉल क्यों न करें (ऑब्जेक्ट की जांच करने के बाद, शून्य नहीं है)?

निश्चित रूप से, कोड छोटा है और शून्य जांच के साथ दूर है, लेकिन मुझे इसे पढ़ने में भ्रमित लगता है। क्या इसके लिए कोई अन्य लाभ हैं? मैंने पूर्णांक मानों के संबंध में भी वही कथन देखा है।

मैं जावास्क्रिप्ट या PHP जैसे कम-से-कम टाइप की गई भाषाओं में कोड को ऊपर देखने की उम्मीद करता हूं - लेकिन सी # में नहीं।

+0

IMO "+" संयोजन के लिए ऑपरेटर है जाँच के बिना string लौटने में संभव के रूप में कम कोड के रूप में उपयोग करने के लिए था ** हमेशा ** इतना स्पष्ट नहीं है, लेकिन अच्छी तरह से यह एक हो सकता है बहुत चरम स्थिति ... –

उत्तर

3

नहीं, आप इसे सी # में नहीं करना चाहते हैं। ऑब्जेक्ट पर ToString विधि को कॉल करने के साथ आप बेहतर हैं। ऐसी कुछ भाषाएं हैं जहां यह पसंदीदा वाक्यविन्यास है, जैसे जावास्क्रिप्ट के साथ। तो आप कुछ क्रॉस-भाषा रिसाव देख सकते हैं।

3

आईएमओ, बस एक खराब दृष्टिकोण शून्य संदर्भ अपवाद से बचने के लिए।

शायद मूल निर्माता की मंशा null या Type

संबंधित मुद्दे