Warum sollte ich IDisposable anstatt in c#?

Heute, ich wollte zu einer operation mit einer Datei, so kam ich mit diesem code

    class Test1
    {
        Test1()
        {
            using (var fileStream = new FileStream("c:\\test.txt", FileMode.Open))
            {
                //just use this filestream in a using Statement and release it after use. 
            }
        }
    }

Aber auf code-review, wurde ich gebeten, zu implementieren IDisposable-Schnittstelle und Finalizer-Methoden

    class Test : IDisposable
    {
        Test()
        {
            //using some un managed resources like files or database connections.
        }

        ~Test()
        {
            //since .NET garbage collector, does not call Dispose method, i call in Finalize method since .net garbage collector calls this
        }

        public void Dispose()
        {
            //release my files or database connections
        }
    }

Aber, meine Frage ist, warum sollte ich ?

Obwohl ich nicht rechtfertigen, meine Methodik nach mir, warum sollten wir IDisposable wenn mit - Anweisung kann sich die Freigabe von Ressourcen)

Irgendwelche speziellen Vorteile oder bin ist hier etwas fehlt?

Sollten Sie nur hinzufügen, einen finalizer, wenn Sie nicht verwaltete Ressourcen, die bereinigt werden sollen. Ein FileStream ist ein managed Ressource.

InformationsquelleAutor now he who must not be named. | 2013-09-02

Schreibe einen Kommentar