2014-11-18 9 views
14

मैं सी # 6.0 में नई स्ट्रिंग इंटरपोलेशन सुविधा की जांच कर रहा हूं (आगे विस्तार के लिए Language Features page at Roslyn देखें)। वर्तमान वाक्य रचना (जो बदलने के लिए आशा की जाती है) के साथ, आप कुछ इस तरह (एक ब्लॉग पोस्ट मैं सिर्फ अब लिख रहा हूँ से लिया उदाहरण) कर सकते हैं:स्ट्रिंग इंटरपोलेशन में प्रारूपण डैश

var dob2 = "Customer \{customer.IdNo} was born on \{customer.DateOfBirth:yyyyMdd}"; 

हालांकि, मैं डैश शामिल नहीं कर पा रहे जैसे स्वरूपण हिस्सा है, में:

var dob2 = "Customer \{customer.IdNo} was born on \{customer.DateOfBirth:yyyy-M-dd}"; 

अगर मैं ऐसा, मैं त्रुटि मिलती है:

Error CS1056 Unexpected character '-' StringInterpolation Program.cs 21

वहाँ किसी भी तरह से मैं डैश स्वरूपण भाग में काम करने के लिए प्राप्त कर सकते हैं है? मुझे पता है कि मैं सिर्फ string.Format() का उपयोग कर सकता हूं, लेकिन मैं देखना चाहता हूं कि यह एक अभ्यास के रूप में स्ट्रिंग इंटरपोलेशन के साथ किया जा सकता है या नहीं।

संपादित करें: ऐसा लगता है कि कोई भी नहीं जानता कि मैं किस बारे में बात कर रहा हूं, इस विषय पर my blog post देखें कि यह कैसे काम करना है।

var dob2 = "Customer \{customer.IdNo} was born on \{customer.DateOfBirth : "yyyy-M-dd"}"; 
+6

यह प्रश्न अस्पष्ट कैसे है? यह कहता है कि त्रुटि को पुन: उत्पन्न करने के लिए क्या आवश्यक है और अपेक्षित व्यवहार क्या है। – svick

+1

समस्या में स्ट्रिंग इंटरपोलेशन के साथ पूरी तरह से कुछ भी नहीं है, और 'ग्राहक को कॉल करने के लिए सबकुछ करना है। डेटऑफबर्थ। टोस्टिंग (" yyyy-m-dd ");'। जांचें कि क्या आप सभी अनावश्यक इंटरपोलेशन सामग्री के बाहर प्रारूप स्ट्रिंग के साथ 'ToString' विधि को कॉल कर सकते हैं। – abelenky

+0

@abelenky यह एक संकलन समय त्रुटि है, अपवाद नहीं। – svick

उत्तर

6
स्ट्रिंग प्रक्षेप वी.एस. में है कि 2015 पूर्वावलोकन, आप उद्धरण का एक और जोड़ी में यह बंद करके प्रक्षेप प्रारूप में डैश जैसे पात्रों का उपयोग कर सकते संस्करण के साथ

:

var text = $"The time is {DateTime.Now:yyyy-MM-dd HH:mm:ss}"; 
27

अंतिम संस्करण अधिक उपयोगकर्ता के अनुकूल है:

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