- कंपाइलर उतना स्ट्रिंग कंसैट अनुकूलित कर सकता है जितना कि यह कर सकता है, उदाहरण के लिए स्ट्रिंग जो लाइन ब्रेक उद्देश्यों के लिए टूट जाती हैं, आमतौर पर एकल स्ट्रिंग अक्षर में अनुकूलित की जा सकती हैं।
- चर के साथ कड़ी String.Concat में संकलित किया जाएगा
- StringBuilder बहुत तेजी से हो सकता है अगर आप एक स्ट्रिंग के लिए कई (10 से अधिक या तो मुझे लगता है कि) "संशोधनों" कर रहे हैं, लेकिन यह कुछ अतिरिक्त भूमि के ऊपर क्योंकि वहन करती है यह आपके बफर में आवश्यक स्थान की तुलना में अधिक स्थान आवंटित करता है और इसकी आवश्यकता होने पर इसके आंतरिक बफर का आकार बदलता है।
मैं व्यक्तिगत रूप से String.Format दो कारणों के लिए समय के लगभग सभी का उपयोग करें:
- यह चर का एक गुच्छा उलटफेर से प्रारूप स्ट्रिंग बनाए रखने के लिए एक बहुत आसान है।
- स्ट्रिंग.फॉर्मैट एक IFormatProvider लेता है जो स्ट्रिंग (जैसे संख्यात्मक) में एम्बेडेड किसी भी IFormattable प्रकारों को पारित किया जाता है ताकि आपको निर्दिष्ट संस्कृति के लिए उपयुक्त संख्यात्मक स्वरूपण मिल सके और समग्र रूप से मूल्यों को स्वरूपित करने के तरीके पर अधिक नियंत्रण हो।
उदाहरण के लिए, के बाद से कुछ संस्कृतियों एक दशमलव बिंदु के रूप में अल्पविराम का उपयोग आप या तो StringBuilder या String.Format साथ सुनिश्चित करने के लिए यदि आप यह सुनिश्चित करें कि संख्या जिस तरह से आप का इरादा स्वरूपित कर रहे थे चाहता था कि तुम CultureInfo.InvariantCulture निर्दिष्ट चाहेगा ।
दो नोट करने के लिए और बात ...
- StringBuilder भी एक AppendFormat समारोह है जो आप एक अनावश्यक दूसरा बफर की आवश्यकता के बिना String.Format का लचीलापन देता है।
- StringBuilder उपयोग करते समय, सुनिश्चित करें कि आप पैरामीटर है कि आप संलग्न करने के लिए पारित श्रृंखलाबद्ध द्वारा उद्देश्य विफल नहीं करते हैं। यह याद करने के लिए एक आसान है।
@Shimmy: //blogs.msdn: पर इस http://stackoverflow.com/questions/6785/is-string-format-as-efficient-as-stringbuilder – shahkalpesh
http देखो।कॉम/बी/रिकॉम/आर्काइव/2004/03/12/प्रदर्शन-क्विज़-1-ऑफ-सीरीज.एएसपीएक्स – Freelancer
http://www.codinghorror.com/blog/archives/001218.html – Freelancer