Pourquoi devrais-je utiliser IDisposable au lieu de l'utiliser en c#?

Aujourd'hui, j'ai voulu effectuer une opération avec un fichier alors je suis venu avec ce 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. 
            }
        }
    }

Mais sur la révision du code, on m'a demandé de mettre en œuvre interface IDisposable et de Finaliseur

    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
        }
    }

Mais, ma question est: pourquoi devrais-je ?

Bien que je ne peux pas justifier ma méthodologie selon moi, pourquoi devrions-nous utiliser IDisposable quand à l'aide de déclaration peut se libérer des ressources)

Tout des avantages spécifiques, ou je manque quelque chose ici?

Vous devez uniquement ajouter un finaliseur si vous avez non géré ressources qui devraient être nettoyé. Un FileStream est un réussi ressource.

OriginalL'auteur now he who must not be named. | 2013-09-02