2010-04-14 11 views
7

निम्न पंक्ति पर विचार करें:सी # में स्ट्रिंग की शुरुआत में `@` का मतलब क्या है?

readonly private string TARGET_BTN_IMG_URL = @"\\ad1-sunglim\Test\"; 

इस पंक्ति में, क्यों संलग्न करने की आवश्यकता है @?

+0

के बारे में मेरे गरीब अंग्रेज़ी खेद: MSDN इन उदाहरणों प्रदान करता है! –

+0

जावास्क्रिप्ट में, यह एक त्रुटि होगी: 'x = @" abc ";' – nickf

+1

इसे आपके लिए थोड़ा सा साफ़ करें :) * उत्तर पोस्ट करने के लिए चलाता है –

उत्तर

13

यह एक शाब्दिक स्ट्रिंग को दर्शाता है, जिसमें '\' वर्ण एक भागने अनुक्रम का संकेत नहीं देता है।

+0

"आप प्रत्येक बैकस्लैश को उसी प्रभाव से दोगुना कर सकते हैं:' TARGET_BTN_IMG_URL = "\\\\ ad1-sunglim \\ टेस्ट \\"; '" –

+0

हाँ, लेकिन यह इतना आसान नहीं है पढ़ने के लिए, यही कारण है कि यह विकल्प मौजूद है। –

+0

स्पष्ट और सरल उत्तर के लिए धन्यवाद! –

2

क्योंकि आपके स्ट्रिंग में भागने अनुक्रम "\" है। कंपाइलर को बचने के लिए "\" को बचने के अनुक्रम के रूप में नहीं मानने के लिए आपको "@" का उपयोग करना होगा।

7

@ सी # को शाब्दिक स्ट्रिंगverbatim string literal के रूप में इलाज करने के लिए बताता है। उदाहरण के लिए:

string s = "C:\Windows\Myfile.txt"; 

एक त्रुटि है, क्योंकि \W और \M वैध भागने दृश्यों नहीं हैं। इसके बजाय आप इसे इस तरह लिखने की ज़रूरत:

string s = "C:\\Windows\\Myfile.txt"; 

यह स्पष्ट है, तो आप एक शाब्दिक स्ट्रिंग है, जो एक विशेष चरित्र के रूप में \ पहचान नहीं करता है का उपयोग कर सकते बनाने के लिए। इसलिए:

string s = @"C:\Windows\Myfile.txt"; 

बिल्कुल ठीक है।


संपादित करें:

string a = "hello, world";     // hello, world 
string b = @"hello, world";     // hello, world 
string c = "hello \t world";    // hello  world 
string d = @"hello \t world";    // hello \t world 
string e = "Joe said \"Hello\" to me";  // Joe said "Hello" to me 
string f = @"Joe said ""Hello"" to me";  // Joe said "Hello" to me 
string g = "\\\\server\\share\\file.txt"; // \\server\share\file.txt 
string h = @"\\server\share\file.txt";  // \\server\share\file.txt 
string i = "one\r\ntwo\r\nthree"; 
string j = @"one 
two 
three"; 
+0

एक वर्बैटिम स्ट्रिंग में उद्धरण '' 'रखने के इच्छुक मामले के बारे में ध्यान देने योग्य है। यह डबल कोट अंक '" "का उपयोग करना संभव है।" यह "@" में देखा जा सकता है जो "हैलो" " मुझे "उदाहरण ऊपर)। –

+0

स्ट्रिंग अक्षर भी विशेष रूप से कई लाइनों का विस्तार कर सकते हैं ... – Noldorin

+0

ऑफटॉपिक:" verbatim "उपसर्ग कहां से आया? – OscarRyz

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