2009-06-15 8 views

Répondre

5

Ce sont des classes générées par le compilateur qui gèrent closures. Ils ne sont pas uniques à ASP.NET MVC.

Cette classe provoquera le compilateur de générer une de ces classes:

public class Foo 
{ 
    private bool _bar = true; 

    public Func<bool> HelloClosure() 
    { 
    return() => _bar; 
    } 
} 

Quand quelqu'un en dehors de Foo appelle HelloClosure, ils reviennent une fonction qui a un lien vers cette instance particulière Foo. Imaginez que nous n'exécutons pas cette fonction immédiatement et que le GC arrive et recueille Foo. Maintenant, que se passe-t-il lorsque nous exécutons la fonction? Ces classes générées automatiquement gèrent ces dépendances entre les fonctions et les instances de sorte que nous n'entrons pas dans une situation comme celle-ci.

+0

Sournois! Merci pour une bonne explication. :) – Kjensen

Questions connexes