व्यावहारिक रूप से बोलना, नहीं, ऐसा नहीं होता है। ओवरराइटिंग मेमोरी जिसे आपने अभी खाली कर लिया है, समय लगता है, इसलिए प्रदर्शन दंड हैं। SecureString जैसे "सुरक्षित" ऑब्जेक्ट्स just wiping themselves हैं, जीसी पर भरोसा नहीं करते हैं।
अधिक व्यापक रूप से, यह उस विशेष भाषा के उस विशेष कार्यान्वयन पर बहुत निर्भर करता है। प्रत्येक भाषा जो जीसी (जैसे सी #) के अस्तित्व को मानती है, कचरा संग्रह कब और कब होने के बारे में विभिन्न नियम निर्दिष्ट करता है।
अपने सी # उदाहरण लेते हैं, सी # विनिर्देश की आवश्यकता नहीं है कि वस्तुओं मुक्त कर दिया जा रहा है के बाद ओवरराइट किया, और यह न करे नहीं करता है या तो:
अंत में, कुछ समय में के बाद वस्तु के योग्य हो जाता संग्रह, कचरा कलेक्टर उस वस्तु से जुड़े स्मृति को मुक्त करता है।
§3.9 C# 5.0 Language Specification
स्मृति बाद में एक संदर्भ प्रकार को सौंपा गया है, तो आप एक निर्माता है कि अपने स्वयं के कस्टम प्रारंभ करता होगा। स्मृति बाद में एक मान प्रकार का कार्य सौंपा गया है, तो इसे बाहर ध्यान केंद्रित किया जाता है इससे पहले कि आप से पढ़ना शुरू कर सकते हैं:
प्रारंभ सामान्य मानों पर आम तौर पर स्मृति प्रबंधक या कचरा कलेक्टर होने से किया जाता है सब-बिट स्मृति को प्रारंभ उपयोग के लिए आवंटित करने से पहले -जेरो। इस कारण से, शून्य संदर्भ का प्रतिनिधित्व करने के लिए सभी बिट्स-शून्य का उपयोग करना सुविधाजनक है।
§5.2 C# 5.0 Language Specification
इसके अतिरिक्त, वहाँ सी # के कम से कम दो कार्यान्वयन - माइक्रोसॉफ्ट के कार्यान्वयन और मोनो के कार्यान्वयन, तो बस "सी #" पर्याप्त विशिष्ट नहीं है। प्रत्येक कार्यान्वयन स्मृति (या नहीं) को ओवरराइट करने का निर्णय ले सकता है।
स्रोत
2014-04-15 14:57:11
सुरक्षा कारणों से, कम से कम, शून्य के लिए, मेरे लिए * तर्क * होगा। – Eugene
संबंधित: http://stackoverflow.com/questions/6441218/can-a-local-variables-memory-be-accessed-outside-its-scope/6445794#6445794 – Servy
आमतौर पर भाषा कार्यान्वयन प्रदर्शन का समर्थन करते हैं। इसलिए, जब उन्हें करना होता है तो वे केवल स्मृति को शून्य करते हैं, और कचरा इकट्ठा करते समय इसे करने के लिए विकल्प दिया जाता है * या * आवंटित करते समय, उन्होंने आवंटित करते समय चुना - बस क्योंकि वे "जितना संभव हो उतना कम काम करते हैं" सिद्धांत का पालन करते हैं। – Durandal