मैं दृढ़ता से केवल \u
का उपयोग करने की अनुशंसा करता हूं, क्योंकि यह बहुत कम त्रुटि-प्रवण है।
\x
, 1-4 पात्रों की खपत जब तक वे हेक्स अंक हैं - जबकि \u
चाहिए हमेशा 4 हेक्स अंक के बाद किया। सी # 5 विनिर्देश, खंड 2.4.4.4 से, \x
के लिए व्याकरण:
हेक्साडेसिमल-एस्केप अनुक्रम:
\x
हेक्स अंकोंहेक्स अंकोंहेक्स ऑप्ट -डिजिट ऑप्टहेक्स-अंक ऑप्ट
उदाहरण के लिए
तो:
string good = "Tab\x9Good compiler";
string bad = "Tab\x9Bad compiler";
... इसी तरह लग रही है लेकिन, बहुत अलग तार कर रहे हैं के रूप में बाद के प्रभावी रूप से है "टैब" U+9BAD
"संकलक" द्वारा पीछा किया गया।
व्यक्तिगत रूप से मैं चाहता हूं कि सी # भाषा में कभी भी \x
शामिल नहीं था, लेकिन वहां हम जाते हैं।
ध्यान दें कि \U
भी है, जो हमेशा 8 हेक्स अंकों के बाद होता है, जिसका मुख्य रूप से गैर-बीएमपी पात्रों के लिए उपयोग किया जाता है। जबकि \u
भी पहचानकर्ता में इस्तेमाल किया जा सकता बाद केवल चरित्र और स्ट्रिंग शाब्दिक में प्रयोग किया जाता है:
वहाँ \u
और \x
के बीच एक अन्य बड़ा अंतर है
string x = "just a normal string";
Console.WriteLine(\u0078); // Still refers to the identifier x
बेशक
स्रोत
2015-08-24 06:13:36
, इस सी # है, जहां मैं उम्मीद करता हूं कि सी के क्विर्क इस _not_ की तरह मौजूद हैं। किसी भी कारण से यह "quirk" शामिल किया गया था? –
धन्यवाद जॉन, आप पहचानकर्ताओं में \ u का उपयोग कर मेरे लिए नया था :) –
@ कोलेजोहनसन: मुझे नहीं पता, मुझे डर है। इसके आसपास सी # 4 की कल्पना में एकमात्र एनोटेशन मेरा ही है, एक ही अलार्म व्यक्त करता है :) मुझे संदेह है कि यह * सी के साथ संगतता के लिए था - इस मामले में एक गुमराह उद्देश्य, आईएमओ। –