क्या मैं एक शब्दशः स्ट्रिंग स्ट्रिंग शाब्दिक में एक दोहरे उद्धरण से बच सकता हूं?


534

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

यह समझ में नहीं आता:

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

जवाबों:


870

एक दोहरे दोहरे उद्धरण का उपयोग करें।

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

आउटपुट:

this "word" is escaped

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

1
क्या आप इसे स्ट्रिंग शाब्दिक के बिना उपयोग कर सकते हैं? ऐसा लगता है कि Html.Raw () यह सुनिश्चित करने के लिए ध्यान रखेगा कि यह आपके लिए एक स्ट्रिंग है ...
Myles

2
स्ट्रिंग इंटरपोलेशन के साथ संयोजन में इसका उपयोग करना भी संभव है $@"this ""{wordVar}"" is escaped";:।
fdelia


95

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

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

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


81

इससे आपको किसी भी प्रश्न को स्पष्ट करने में मदद करनी चाहिए: c # शाब्दिक

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

यहाँ छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.