Quelle est la bonne façon de libérer de la mémoire en C#

J'ai une minuterie en C# qui permet d'exécuter un code à l'intérieur de la méthode. Dans le code que j'utilise plusieurs objets temporaires.

  1. Si j'ai quelque chose comme Foo o = new Foo(); à l'intérieur de la méthode, cela signifie que chaque fois que le timer tiques, je suis en création d'un nouvel objet et une nouvelle référence à cet objet?

  2. Si j'ai string foo = null et puis je viens de mettre quelque chose de temporel dans toto, est-il le même que ci-dessus?

  3. Ne le garbage collector jamais supprimer l'objet et la référence du ou des objets sont continuellement créés et de rester dans la mémoire?

  4. Si je viens de déclarer Foo o; et non point à une instance, n'est-ce pas éliminés lors de la méthode se termine?

  5. Si je veux m'assurer que tout est supprimé, quelle est la meilleure façon de le faire:

    • avec l'aide de l'énoncé à l'intérieur de la méthode
    • par l'appel de la méthode dispose à la fin
    • en mettant Foo o; à l'extérieur de la minuterie de la méthode et simplement la cession o = new Foo() à l'intérieur, alors le pointeur de l'objet est supprimé après la méthode se termine, le garbage collector supprimer l'objet.
InformationsquelleAutor user579674 | 2011-05-20