2009-12-18 12 views
462

सी # में वर्बैटिम स्ट्रिंग शाब्दिक (@ "foo") में, बैकस्लाश को एस्केप के रूप में नहीं माना जाता है, इसलिए \ "डबल कोट प्राप्त करने के लिए काम नहीं करता है। क्या वर्बैटिम में डबल कोट प्राप्त करने का कोई तरीका है ? स्ट्रिंग शाब्दिकक्या मैं वर्बैटिम स्ट्रिंग में एक डबल कोट से बच सकता हूं?

यह जाहिर है काम नहीं करता है:

string foo = @"this \"word\" is escaped"; 

उत्तर

752

उपयोग एक डुप्लिकेट किए गए दोहरे उद्धरण

@"this ""word"" is escaped"; 

आउटपुट:।

this "word" is escaped 
+0

मैं) का उपयोग करने @ Html.Raw (कोशिश कर रहा हूँ और चौगुनी बोली मेरी स्ट्रिंग – JoshYates1980

+1

आप उपयोग कर सकते हैं टूट जाता है उल्लेख कर सकते हैं स्ट्रिंग अक्षर के बिना यह? ऐसा लगता है कि Html.Raw() यह सुनिश्चित करने का ख्याल रखेगा कि यह आपके लिए एक स्ट्रिंग है ... – Myles

+0

स्ट्रिंग इंटरपोलेशन के साथ संयोजन में इसका उपयोग करना भी संभव है: '$ @ "यह" "वर्डवायर}" "बच निकला है"; '। – fdelia

103

डबल उद्धरण चिह्नों का उपयोग करें।

string foo = @"this ""word"" is escaped"; 
59

यह मदद करनी चाहिए किसी भी प्रश्न को स्पष्ट आप हो सकता है: c# literals

यहाँ लिंक की गई सामग्री से एक टेबल है:

enter image description here

90

कुछ और जानकारी जोड़ने के लिए, अपने उदाहरण होगा @ प्रतीक के बिना काम करें (यह \ "से बचने से रोकता है, इस प्रकार:

string foo = "this \"word\" is escaped!"; 

यह दोनों तरीकों से काम करेगा, लेकिन मैं इसे आसान काम करने के लिए डबल-कोट शैली पसंद करता हूं, उदाहरण के लिए, फ़ाइल नामों के साथ (स्ट्रिंग में बहुत सारे \ के साथ)।

1
string str = @"""Hi, "" I am programmer"; 

आउटपुट - "हाय," मैं हूँ प्रोग्रामर

आप '@' prefix before any string in C# .NET

+37

यह प्रश्न काफी पुराना है और पहले से ही एक उच्च रेटेड स्वीकृत उत्तर है: आपको उन सवालों के जवाब देने का प्रयास करना चाहिए जिन्हें वास्तव में उत्तर की आवश्यकता है। – kdt

+22

क्या आपका मतलब था "हाय, मैं एक" प्रोग्रामर हूं ""? – hyde

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