सी # 6 वाक्य रचना के साथ अंतर्वेशित स्ट्रिंग शाब्दिक के लिए संकलक समर्थन लाता है:बहुपंक्ति सी # अंतर्वेशित स्ट्रिंग शाब्दिक
var person = new { Name = "Bob" };
string s = $"Hello, {person.Name}.";
इस छोटे तार के लिए अच्छा है, लेकिन अगर आप एक लंबी स्ट्रिंग का उत्पादन करना चाहते हैं यह एक एकल पर निर्दिष्ट किया जाना चाहिए लाइन?
तार के अन्य प्रकार के साथआप कर सकते हैं:
var multi1 = string.Format(@"Height: {0}
Width: {1}
Background: {2}",
height,
width,
background);
या:
var multi2 = string.Format(
"Height: {1}{0}" +
"Width: {2}{0}" +
"Background: {3}",
Environment.NewLine,
height,
width,
background);
मैं यह सब एक के बाद एक लाइन बिना स्ट्रिंग प्रक्षेप के साथ इस लक्ष्य को हासिल करने के लिए एक तरह से नहीं मिल सकता है:
var multi3 = $"Height: {height}{Environment.NewLine}Width: {width}{Environment.NewLine}Background: {background}";
मुझे लगता है कि इस मामले में आपके स्थान पर \r\n
इस्तेमाल कर सकते हैं(कम पोर्टेबल), या इसे स्थानीय में खींचें, लेकिन ऐसे मामले होंगे जहां आप इसे कम से कम एक पंक्ति से कम नहीं कर सकते हैं, बिना अर्थपूर्ण ताकत खोए।
क्या यह केवल मामला है कि स्ट्रिंग इंटरपोलेशन लंबे तारों के लिए उपयोग नहीं किया जाना चाहिए?
क्या हमें लंबे समय तक StringBuilder
का उपयोग करना चाहिए?
var multi4 = new StringBuilder()
.AppendFormat("Width: {0}", width).AppendLine()
.AppendFormat("Height: {0}", height).AppendLine()
.AppendFormat("Background: {0}", background).AppendLine()
.ToString();
या क्या कुछ और सुरुचिपूर्ण है?
http://stackoverflow.com/questions/31764898/long-string-interpolation-lines-in-c6 – Ric
@ डेमेट्रोशेवचेन्को, मैंने ऐसा करने पर विचार किया। हालांकि, मुझे आपकी स्वीकृति के बारे में निश्चित नहीं था क्योंकि मैंने देखा कि आपने [शीर्ष मतदान वाले उत्तर] (http://stackoverflow.com/a/31764920/24874) को कॉपी किया है, जिस लिंक को रिक पोस्ट किया गया है, फिर इसे अलग देखने के लिए संपादित करें । यह सब 5 मिनट के भीतर हुआ, इसलिए संपादन दिखाई नहीं दे रहे हैं। आपका जवाब तकनीकी रूप से सही है, लेकिन मुझे लगा जैसे आपको क्रेडिट देना चाहिए था। मैं वास्तव में रिक की टिप्पणी स्वीकार करना चाहूंगा, लेकिन यह संभव नहीं है। –
@DrewNoakes आपका प्रश्न रिक द्वारा लिखे गए प्रश्न के डुप्लिकेट के रूप में चिह्नित किया गया है। रिक वह था जिसने इसे चिह्नित किया। इसलिए मेरे उत्तर के उस लिंक का एक और उदाहरण जोड़ने की कोई ज़रूरत नहीं है। यदि आप असहमत हैं, तो मैं आपकी तर्क की सराहना करता हूं। और निश्चित रूप से मैंने अपने जवाब में कोड संपादित किया। हालांकि, इसका कारण यह अलग दिखना नहीं था, बल्कि आपके प्रश्न में उदाहरण से मेल खाना था। –