Jaka jest różnica między dwiema następującymi fragmenty kodu:Różnica między "używaniem" a określaniem zakresu?
using (Object o = new Object())
{
// Do something
}
i
{
Object o = new Object();
// Do something
}
I zaczęła używać using
dużo więcej, ale jestem ciekaw, co faktycznie korzyści w porównaniu do określania obiektów.
Edit: Przydatne ciekawostki wziąłem z tego:
Jon Skeet:
Należy pamiętać, że to nie wymusza zbieranie śmieci w jakikolwiek sposób, kształt lub formę. Usuwanie śmieci i szybkie usuwanie zasobów są nieco ortogonalne.
Will Eddins komentarz:
Chyba że klasa implementuje interfejs IDisposable i posiada funkcję Dispose(), aby nie używać użyciu.
Czy można słusznie powiedzieć, że ma to zastosowanie głównie wtedy, gdy trzeba oczyścić niezarządzane zasoby, które może posiadać klasa? Czy dotyczy to również klas czysto zarządzanych? –
+1 za notatkę dotyczącą zbierania śmieci, zawsze mam tendencję do jej zapominania ... – jdehaan
Ok, więc typowy obiekt służący do przechowywania struktury danych nie widziałby żadnej korzyści z klauzuli using, ale cięższego obiektu, który implementuje IDisposable będzie? – Kelsey