Нужна помощь с dispose() в C#
В приведенном ниже коде, пожалуйста, предложите ссылки, которые мы используем, и особенно там, где мы используем ключевое слово " new "для SqlCommand и т. д., должны ли мы явно избавляться от ссылок или заключать их в" using ()", или он будет собирать мусор, когда потеряет область действия.
private static Boolean clsinit() { Boolean mret = true; String mconnstr = @"Data Source=PL\clsSQL,7000;Initial Catalog=clsms;User ID=1111;password=2222;"; clsmain.clsconn = new SqlConnection(mconnstr); try { clsmain.clsconn.Open(); SqlCommand msqlcmd = new SqlCommand("select licdate from customer", clsmain.clsconn); SqlDataReader msqldat = msqlcmd.ExecuteReader(); msqldat.Read(); if (DateTime.Now.Date > Convert.ToDateTime(msqldat["licdate"]).Date) { MessageBox.Show("Authentication Restricted."); mret = false; } else { clsmain.clsconn.Close(); if (!pychk()) { MessageBox.Show("Authentication Failed"); mret = false; } } } catch { clsmain.oclsmsgmgr.showmsg("Error connecting Server...!|.", mret = false; } finally { clsmain.clsconn.Close(); } loadcls mfrm = new loadcls(); mfrm.ShowDialog(); return mret; }
Обратите внимание: мне дали задание выяснить некоторые утечки памяти в проекте. Пожалуйста, пролейте немного света на "манекенщицкий" язык сбора мусора. Я совершенно новичок в операциях .NET GC.
Заранее спасибо.
Что я уже пробовал:
Я искал в интернете четкую картину, но она прошла мимо моей головы. Так что, вероятно, надеясь на своем собственном примере, если кто-то прояснит, я смогу лучше понять.