बैकस्लैश वाले पथ स्ट्रिंग के लिए अपरिचित बच अनुक्रम


90

निम्नलिखित कोड प्रत्येक बैकस्लैश के लिए एक "अपरिचित बच अनुक्रम" के बारे में एक कंपाइलर त्रुटि उत्पन्न करता है:

string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

मुझे लगता है कि मुझे बैकस्लैश से बचने की आवश्यकता है? मैं उसको कैसे करू?

जवाबों:


224

आप हर बार डबल बैकस्लैश का उपयोग कर सकते हैं

string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";

या @ प्रतीक का उपयोग करें

string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

इससे Html.TextBoxFor समस्या जो मुझे हो रही थी, उसे हल करने में मदद मिली। नियमित अभिव्यक्ति से पहले @ का उपयोग करते हुए, अपरिचित एस्केप अनुक्रम को हल किया, जहां डबल बैकस्लैश विफल रहा।
जोशुआ

27

इसे इस्तेमाल करे:

string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";

समस्या यह है कि एक स्ट्रिंग में, एक \एस्केप चरित्र है। @साइन का उपयोग करके आप संकलक को भागने के पात्रों को अनदेखा करने के लिए कहते हैं।

आप बच कर भी निकल सकते हैं \:

string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";

4
FWIW और Googlebot की मदद करने के लिए @ "" शब्द एक "शब्दशः स्ट्रिंग शाब्दिक" है। यद्यपि मैंने यह भी सुना है कि इसे सिर्फ "स्ट्रिंग शाब्दिक" के रूप में संदर्भित किया जाता है, लेकिन तकनीकी रूप से इसमें सिर्फ "" नियमित स्ट्रिंग शाब्दिक "" शामिल है। msdn.microsoft.com/en-us/library/aa691090(VS.71).aspx
मार्क ब्रैकेट


9

यदि आपकी स्ट्रिंग एक फ़ाइल पथ है, जैसा कि आपके उदाहरण में, आप यूनिक्स शैली फ़ाइल पथों का भी उपयोग कर सकते हैं:

string foo = "D:/Projects/Some/Kind/Of/Pathproblem/wuhoo.xml";

लेकिन अन्य उत्तरों में C # से बचने के लिए अधिक सामान्य समाधान हैं।


5
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";

यह काम करेगा, या पिछले उदाहरण भी करेंगे। @ "..." का अर्थ है कि उद्धरण चिह्नों के बीच सब कुछ व्यवहार करें, इसलिए आप कर सकते हैं

@"Hello
world"

शाब्दिक न्यूलाइन शामिल करना। मैं अधिक पुराना स्कूल हूं और "\" से "\" बचना पसंद करता हूं


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