शांत सुविधा। मैं सिर्फ इस बात पर जोर देना चाहता हूं कि यह स्ट्रिंग से बेहतर क्यों है। यह कुछ लोगों के लिए स्पष्ट नहीं है।
मैंने किसी को पैरामीटर स्ट्रिंग से मिलान करने के लिए "{0} {1} {2}" ऑर्डर स्ट्रिंग पढ़ा। आपको string.format में "{0} {1} {2}" ऑर्डर करने के लिए मजबूर नहीं किया जाता है, आप "{2} {0} {1}" भी कर सकते हैं। हालांकि, यदि आपके पास बहुत सारे पैरामीटर हैं, तो 20 की तरह, आप वास्तव में "{0} {1} {2} ... {19}" स्ट्रिंग को अनुक्रमित करना चाहते हैं। यदि यह एक गड़बड़ गड़बड़ है, तो आपके पास अपने मापदंडों को अस्तर करने के लिए एक कठिन समय होगा।
$ के साथ, आप अपने मापदंडों की गणना किए बिना पैरामीटर इनलाइन जोड़ सकते हैं। यह कोड को पढ़ने और बनाए रखने में बहुत आसान बनाता है।
$ का नकारात्मक पक्ष यह है कि आप स्ट्रिंग में पैरामीटर को आसानी से दोहरा नहीं सकते हैं, आपको इसे टाइप करना होगा। उदाहरण के लिए, यदि आप System.Environment.NewLine टाइप करके थक गए हैं, तो आप string.format ("... {0} ... {0} ... {0}", System.Environment.NewLine) कर सकते हैं, लेकिन, $ में, आपको इसे दोहराना होगा। आप $ "{0}" नहीं कर सकते हैं और इसे string.format को पास कर सकते हैं क्योंकि $ "{0}" रिटर्न "0"।
साइड नोट पर, मैंने एक और नकली टैनिक में एक टिप्पणी पढ़ी है। मैं टिप्पणी नहीं कर सकता, इसलिए, यहाँ यह है। वह उसने कहा
string msg = n + " sheep, " + m + " chickens";
एक से अधिक स्ट्रिंग ऑब्जेक्ट बनाता है। यह वास्तव में सच नहीं है। यदि आप इसे एक पंक्ति में करते हैं, तो यह केवल एक स्ट्रिंग बनाता है और स्ट्रिंग कैश में रखा जाता है।
1) string + string + string + string;
2) string.format()
3) stringBuilder.ToString()
4) $""
वे सभी एक स्ट्रिंग लौटाते हैं और केवल कैश में एक मूल्य बनाते हैं।
दूसरी ओर:
string+= string2;
string+= string2;
string+= string2;
string+= string2;
कैश में 4 भिन्न मान बनाता है क्योंकि 4 ";" हैं।
इस प्रकार, निम्नलिखित की तरह कोड लिखना आसान हो जाएगा, लेकिन कार्लोस मुनोज़ द्वारा सही किए जाने पर आप पांच प्रक्षेपित स्ट्रिंग बनाएंगे:
string msg = $"Hello this is {myName}, " +
$"My phone number {myPhone}, " +
$"My email {myEmail}, " +
$"My address {myAddress}, and " +
$"My preference {myPreference}.";
यह कैश में एक सिंगल स्ट्रिंग बनाता है जबकि आपके पास कोड पढ़ना बहुत आसान है। मुझे प्रदर्शन के बारे में निश्चित नहीं है, लेकिन, मुझे यकीन है कि एमएस इसे ऑप्टिमाइज़ करेगा यदि पहले से ही ऐसा नहीं कर रहा है।