c# - .NET में एक प्रारूप स्ट्रिंग में ब्रेसिज़(घुंघराले ब्रैकेट) से कैसे बचें




string parsing (6)

आउटपुट के लिए हाँ { string.Format आपको इसे इस तरह से string.Format होगा {{

तो यह

String val = "1,2,3";
String.Format(" foo {{{0}}}", val);

आउटपुट "foo {1,2,3}"

लेकिन आपको सी # में डिज़ाइन बग के बारे में जानना है, जो कि उपर्युक्त तर्क पर जाकर आप मान लेंगे कि यह कोड नीचे प्रिंट होगा {24.00}

int i = 24;
string str = String.Format("{{{0:N}}}", i); //gives '{N}' instead of {24.00}

लेकिन यह प्रिंट {एन}। ऐसा इसलिए है क्योंकि सी # पार्स से बचने के अनुक्रम और प्रारूप अक्षर हैं। उपर्युक्त मामले में वांछित मूल्य प्राप्त करने के लिए आपको इसके बजाय इसका उपयोग करना होगा।

String.Format("{0}{1:N}{2}", "{", i, "}") //evaluates to {24.00}

संदर्भ लेख स्ट्रिंग। फोरमेट गॉटच और स्ट्रिंग फॉर्मेटिंग अकसर किये गए सवाल

string.Format का उपयोग करने में ब्रैकेट कैसे बच सकते हैं। उदाहरण के लिए:

String val = "1,2,3"
String.Format(" foo {{0}}", val); 

यह उदाहरण अपवाद नहीं फेंकता है, लेकिन स्ट्रिंग foo {0} आउटपुट करता है

क्या ब्रैकेट से बचने का कोई तरीका है?


आप डबल ओपन ब्रैकेट और डबल क्लोजिंग ब्रैकेट का उपयोग कर सकते हैं जो केवल आपके पेज पर एक ब्रैकेट दिखाएगा।


बस ब्रेस डुप्लिकेट करें और यही वह है।

{=> {{

} =>}}


या आप इस तरह सी # स्ट्रिंग इंटरपोलेशन का उपयोग कर सकते हैं (सुविधा सी # 6.0 में उपलब्ध है)

var value = "1, 2, 3";
var output = $" foo {{{value}}}";

सी # में जेसन स्ट्रिंग्स एड-हाक (क्लास / ऑब्जेक्ट को क्रमबद्ध किए बिना) बनाने के तरीके की खोज में यहां आया था। दूसरे शब्दों में, सी # में इंटरपोलेटेड स्ट्रिंग्स और " वर्बैटिम स्ट्रिंग लिटलल्स " ('@' उपसर्ग के साथ डबल उद्धृत तार) का उपयोग करते समय ब्रेसिज़ और कोट्स से बचने के लिए कैसे ...

var json = [email protected]"{{""name"":""{name}""}}";

घुंघराले ब्रैकेट से बचने और स्ट्रिंग इंटरपोलेशन का उपयोग करना एक दिलचस्प चुनौती के लिए बनाता है। स्ट्रिंग इंटरपोलेशन पार्सिंग और string.format पार्सिंग से बचने के लिए आपको चौगुनी ब्रैकेट का उपयोग करने की आवश्यकता है।

ब्रैकेट से बचना: स्ट्रिंग इंटरपोलेशन $ ("") और स्ट्रिंग। फोर्मेट

string localVar = "dynamic";
string templateString = [email protected]"<h2>{0}</h2><div>this is my {localVar} template using a {{{{custom tag}}}}</div>";
string result = string.Format(templateString, "String Interpolation");

// OUTPUT: <h2>String Interpolation</h2><div>this is my dynamic template using a {custom tag}</div>







formatting