2009-01-21 13 views
9

क्या कोई नई लाइन परिभाषित करने के लिए सी # सिटैक्स में कोई तरीका है? (जैसा वीबी _ में)सी # स्रोत कोड में एक स्ट्रिंग के अंदर एक नई लाइन कैसे डालें?

उदाहरण:

बजाय:

string myStr = "very long string" + 
"another long string"; 

यह:

string myStr = "very long string \something 
another long string" 

या; संकलक इसे संभालता है और कुछ ऐसा करता है; इस उदाहरण में "स्ट्रिंग" + "स्ट्रिंग" -> "स्ट्रिंगस्ट्रिंग"?

विभिन्न मामलों, जैसे जब इन तार स्थिरांक हैं स्वागत कर रहे हैं आदि

उत्तर

22

संकलक "एबीसी" + "डीईएफ़" "ABCDEF" में बदल जाता है +

+0

यह दिलचस्प लगता है, इसलिए जब हम सभी स्ट्रिंग को जानते हैं तो स्ट्रिंगबिल्डर का उपयोग करने की आवश्यकता नहीं है? जैसे sb.Append ("long str"); sb.Append ("long str"); इसके बजाय बस "लम्बी स्ट्र" + "लम्बी स्ट्र" या @ "लम्बी स्ट्र ..." – erdogany

+0

erdogany लिखें: बिल्कुल। साथ ही, "यह" + 1 + "स्ट्रिंग" संकलन समय पर "यह 1 स्ट्रिंग" में परिवर्तित हो जाती है। –

+0

@DrJokepu: क्या आप इसके बारे में निश्चित हैं? – M4N

19

आप

string myStr = @"very long string 
another long string"; 

उपयोग कर सकते हैं @ "एक स्ट्रिंग की शुरुआत शाब्दिक है और स्ट्रिंग के इस प्रकार जब तक खत्म नहीं होता अगला "चरित्र पाया जाता है।

सी # के लिए सटीक वाक्यविन्यास नहीं है जो vb में _ वर्ण जैसा ही है। इसलिए यदि आप एक नई लाइन से बचना चाहते हैं, तो आपको अपने तारों को विभिन्न लाइनों पर मैन्युअल रूप से कनेक्ट करना होगा। तो वहाँ का प्रयोग करने में कोई शुल्क नहीं लिया

+0

यह सही है, लेकिन आपको ध्यान रखना होगा कि आप दूसरी पंक्ति को इंडेंट नहीं करते हैं। अन्यथा व्हाइटस्पेस (रिक्त स्थान या टैब वर्ण) परिणामी स्ट्रिंग का हिस्सा होंगे। – M4N

+2

ओह, और न्यूलाइन वर्ण भी परिणामी स्ट्रिंग का हिस्सा होगा। – M4N

+0

"ओह, और न्यूलाइन चरित्र भी परिणामस्वरूप स्ट्रिंग का हिस्सा होगा", हां, यह अच्छा नहीं है। मेरे मामले के लिए कोई बड़ा सौदा नहीं है, लेकिन यह वीबी में _ की तरह नहीं कर सकता है। – erdogany

-3

एक stringbuilder से बस का उपयोग कर जहां भी संभव हो तार जोड़ लिए तेजी के रूप में यह चलाता इस्तेमाल किया जाना चाहिए "इस" + " उस"।

+0

एक स्ट्रिंगबिल्डर एक निश्चित या ज्ञात-छोटी संख्या में स्ट्रिंग कॉन्सटेनेशन के लिए ओवरकिल है। –

3

मुझे विश्वास है कि आप जो खोज रहे हैं वह सी # लाइन निरंतरता चरित्र है।

दिखना बंद करो। वहां कोई नहीं है। सी # में एक रेखा समाप्त होती है जब अर्धविराम ";" पहुंच गया।

इस प्रकार, जैसा कि अन्य ने उल्लेख किया है, यदि आप एक स्ट्रिंग असाइनमेंट को तोड़ना चाहते हैं, तो बस '+' वर्ण का उपयोग करें।


namespace Jaberwocky 
{ 
    class Program 
    { 
     public static void Main(string[] args) 
     { 
      string s = "Hello World! " + 
       "This is a long string " + 
       "That continues on and " + 
       "on and on and on."; 
      Console.WriteLine(s); 
      Console.ReadKey(true); 
     } 
    } 
} 
संबंधित मुद्दे