Der Garbage Collector räumt zwar die .NET-Objekte auf, aber er weiß nichts von z.B. irgendwelchen
Win32-Handles, Dateiressourcen oder ähnlichem. Diese werden typischerweise in der Dispose-Methode freigegeben, was insbesondere auch die kontrollierte Freigabe von Objekten ermöglicht.
Im
MSDN gibt es dazu einiges zu lesen.