अगर मैं निम्नलिखित है:क्या कचरा कलेक्टर स्पष्ट वस्तुओं को घटनाओं की सदस्यता लेता है?
public class Test
{
public static void Main()
{
List<Person> persons = new List<Person> { new Person() };
persons[0].Sneezing += new EventHandler(Person_Sneezing);
persons = null;
}
public static void Person_Sneezing(object sender, EventArgs e)
{
(sender as Person).CoverFace();
}
}
व्यक्ति उस व्यक्ति में था [0] अभी भी स्मृति में मौजूद है, क्योंकि यह प्रतिनिधि छींकने है Person_Sneezing विधि के लिए एक संदर्भ है या यह जीसी द्वारा एकत्र हो जाता है करता है?
क्या आप इसे रिसाव कहते हैं? यदि टेस्ट रास्ता जाता है तो व्यक्ति [0] करता है। –
निश्चित रूप से, लेकिन सब कुछ दूर चला जाता है * आखिरकार * - सबसे बुरी स्थिति में, जब आपका आवेदन निकलता है तो यह सब दूर हो जाएगा! जब मैं सोचता हूं कि यह दूर जा रहा है तो मैं इसे दूर नहीं ले जाऊंगा। – mquander
(इसके अलावा, यदि आपने व्यक्तियों [0] के लिए कोई और संदर्भ नहीं दिया है, तो आपको इसे वापस पाने के लिए कठोर दबाव डाला जाएगा, इसलिए यह मूल रूप से शून्यता में लीक हो जाता है।) – mquander