Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C#

कौन सा बेहतर है System.String या System.Text.StringBuilder सी # में कक्षाएं?


मुख्य अंतर यह है कि StringBuilder परिवर्तनशील है जबकि स्ट्रिंग अपरिवर्तनीय है।

स्ट्रिंग अपरिवर्तनीय है, अपरिवर्तनीय का अर्थ है यदि आप स्ट्रिंग ऑब्जेक्ट बनाते हैं तो आप इसे संशोधित नहीं कर सकते हैं और यह हमेशा मेमोरी में स्ट्रिंग प्रकार की नई वस्तु बनाता है।

दूसरी ओर, StringBuilder परिवर्तनशील है। मतलब, अगर हम एक स्ट्रिंग बिल्डर ऑब्जेक्ट बनाते हैं तो हम हर बार नया इंस्टेंस बनाए बिना कोई भी ऑपरेशन जैसे इंसर्ट, रिप्लेस या एपेंड कर सकते हैं। यह स्मृति में एक स्थान पर स्ट्रिंग को अद्यतन करेगा स्मृति में नया स्थान नहीं बनाएगा।

उदाहरण

using System;
using System.Text;
class DemoApplication{
   public static void Main(String[] args){
      String systemString = "Hello";
      StringConcat(systemString);
      Console.WriteLine("String Class Result: " + systemString);
      StringBuilder stringBuilderString = new StringBuilder("Hello");
      StringBuilderConcat(stringBuilderString);
      Console.WriteLine("StringBuilder Class Result: " + stringBuilderString);
   }
   public static void StringConcat(String systemString){
      String appendString = " World";
      systemString = String.Concat(systemString, appendString);
   }
   public static void StringBuilderConcat(StringBuilder stringBuilderString){
      stringBuilderString.Append(" World");
   }
}

आउटपुट

उपरोक्त उदाहरण का आउटपुट इस प्रकार है -

String Class Result: Hello
StringBuilder Class Result: Hello World
  • StringConcat विधि का उपयोग:इस पद्धति में, हम एक स्ट्रिंग "हैलो" पास कर रहे हैं और "systemString =String.Concat(systemString, appendString);" प्रदर्शन कर रहे हैं। जहां एपेंडस्ट्रिंग "विश्व" को संयोजित करने के लिए है। मुख्य () से पारित स्ट्रिंग नहीं बदली है, यह इस तथ्य के कारण है कि स्ट्रिंग अपरिवर्तनीय है . स्ट्रिंग के मान को बदलने से एक और ऑब्जेक्ट बनता है और StringConcat() नई स्ट्रिंग के संदर्भ को संग्रहीत करता है में सिस्टमस्ट्रिंग बनाता है। . लेकिन संदर्भ systemString मुख्य () और StringConcat () में अलग-अलग तारों को संदर्भित करता है।

  • StringBuilderConcat विधि का उपयोग:इस पद्धति में, हम एक स्ट्रिंग "हैलो" पास कर रहे हैं और "stringBuilderString.Append(" World");" प्रदर्शन कर रहे हैं। जो स्ट्रिंग के वास्तविक मान (मुख्य में) को "हैलो वर्ल्ड" में बदल देता है। यह साधारण तथ्य के कारण है कि StringBuilder परिवर्तनशील है और इसलिए इसका मान बदल जाता है।


  1. लिनक्स टकसाल बनाम उबंटू:कौन सा बेहतर है?

    वहाँ कई लिनक्स वितरण हैं, प्रत्येक एक निश्चित फोकस या स्वाद के साथ। कुछ लिनक्स डिस्ट्रो सुरक्षा परीक्षण पर केंद्रित हैं, जबकि अन्य गेमिंग के लिए बने हैं। आप जो भी डिस्ट्रो चुनते हैं, सबसे अच्छे लिनक्स डिस्ट्रोस ऑलराउंडर हैं जो आपको डेबियन, फेडोरा और उबंटू जैसे कुछ भी करने की अनुमति देते हैं। जबकि य

  1. लैपटॉप बनाम डेस्कटॉप - कौन सा बेहतर है?

    लैपटॉप बनाम डेस्कटॉप यह एक ऐसी लड़ाई है जो बहुत से लोगों को उत्साहित करती है, कई लोग डेस्कटॉप पर बहुत सारा पैसा खर्च करने को लेकर संशय में रहते हैं और कई लोग भ्रमित होते हैं कि क्या एक लैपटॉप उनकी जरूरतों को पूरा कर सकता है। तो, इस लेख में, हम देखेंगे कि आपके लिए कौन सा बेहतर है, लैपटॉप या डेस्कटॉप।

  1. Android TV बनाम Roku TV:कौन सा बेहतर है?

    Android TV और Roku TV मूल रूप से एक ही काम करते हैं, लेकिन उनका उपयोग उपयोगकर्ताओं के अनुसार अलग-अलग होगा। बिना पूर्व तकनीकी ज्ञान वाले लोगों के लिए Roku TV अधिक उपयुक्त है। दूसरी ओर, उत्साही गेमर्स और भारी उपयोगकर्ताओं के लिए Android TV एक बेहतर विकल्प है। इसलिए, यदि आप तुलना करना चाहते हैं:Andro