विषयसूची:
परिभाषा - Mutable Type का क्या अर्थ है?
उत्परिवर्तित प्रकार, C # में, एक प्रकार की वस्तु है जिसके डेटा सदस्य, जैसे गुण, डेटा और फ़ील्ड, इसके निर्माण के बाद संशोधित किए जा सकते हैं।
म्यूटेबल प्रकारों का उपयोग समानांतर अनुप्रयोगों में किया जाता है, जहां सामान्य भाषा रनटाइम (सीएलआर) द्वारा स्टैकेबल वैल्यू टाइप की वस्तुओं को स्टैक में बनाए रखा जाता है। यह कुछ अनुकूलन प्रदान करता है, जो इसे ढेर-आवंटित वस्तुओं की तुलना में तेज़ बनाता है। साझा किए गए डेटा तक पहुंचने वाले कई थ्रेड्स के कारण समानांतर अनुप्रयोगों में होने वाली सिंक्रनाइज़ेशन त्रुटियों को रोकने के लिए, कुछ प्रकार के लॉकिंग तंत्र के साथ उत्परिवर्तनीय प्रकारों का उपयोग किया जाता है।
अपनी अंतर्निहित प्रकृति के कारण, परिवर्तनशील प्रकार के डेटा को रन टाइम के दौरान संशोधित किया जा सकता है, इसलिए उत्परिवर्तित प्रकार का उपयोग अक्सर तब किया जाता है जब ऑब्जेक्ट में बड़ी मात्रा में परिवर्तनशील डेटा होता है। यद्यपि उत्परिवर्तनीय प्रकार थ्रेड-सुरक्षित और अपरिवर्तनीय प्रकार के रूप में सुरक्षित नहीं है, लेकिन इसका उपयोग अक्सर मूल्य प्रकार के चर के साथ किया जाता है, जो स्टैक में आवंटित होते हैं, प्रदर्शन में सुधार करते हैं।
Techopedia Mutable Type की व्याख्या करता है
सभी बिल्ट-इन वैल्यू टाइप जैसे इंट, डबल, आदि, म्यूटेबल टाइप हैं और इन्हें वेरिएबल्स से पहले "रीडऑनली" मॉडिफायर जोड़कर अपरिवर्तनीय बनाया जा सकता है। यदि एक पठनीय संदर्भ प्रकार को एक सुदूर संशोधक के साथ निर्दिष्ट किया जाता है, तो C # संकलक एक चेतावनी उत्पन्न करता है। संदर्भ प्रकार के किसी फ़ील्ड में आसानी से संशोधक जोड़कर, फ़ील्ड को संदर्भ प्रकार के किसी अन्य उदाहरण से प्रतिस्थापित नहीं किया जा सकता है, लेकिन फ़ील्ड के उदाहरण डेटा को संदर्भ प्रकार के माध्यम से संशोधित करने की अनुमति देगा।
उदाहरण के लिए, StringBuilder .NET फ्रेमवर्क लाइब्रेरी में एक परस्पर संदर्भ प्रकार है, जिसके माध्यम से इस प्रकार से बनाए गए इंस्टेंस के स्ट्रिंग मान को अक्षरों को जोड़कर, हटाकर, बदलकर या सम्मिलित करके संशोधित किया जा सकता है।
एक उत्परिवर्तित प्रकार को अपरिवर्तनीय प्रकार से प्राप्त नहीं किया जाना चाहिए क्योंकि व्युत्पन्न वर्ग में एक आभासी विधि की संभावना है ताकि इसे ओवरराइड किया जा सके ताकि अपरिवर्तनीय सदस्य अधिलेखित हो जाएं।
उत्परिवर्तित प्रकार की मुख्य सीमा यह है कि स्थानीय चर के असाइनमेंट के माध्यम से या किसी विधि के पैरामीटर के रूप में उत्परिवर्तित प्रकार (जैसे संरचना) के एक ऑब्जेक्ट को पास करते समय, वस्तु का मूल्य स्थानांतरित किया जाता है और न कि ऑब्जेक्ट को ही। इसके द्वारा, वस्तु की प्रतिलिपि उत्परिवर्तित होती है न कि मूल। इस व्यवहार से अनपेक्षित बग हो सकते हैं।
