La portée des paramètres d'une méthode anonyme est anonymous-method-block.
C'est une erreur d'avoir une instruction de saut, telle que goto, break ou continue, à l'intérieur du bloc de méthode anonyme dont la cible est à l'extérieur du bloc. C'est également une erreur d'avoir une instruction de saut, telle que goto, break ou continue, à l'extérieur du bloc de méthode anonyme dont la cible est à l'intérieur du bloc.
Les variables locales et les paramètres dont la portée contient une déclaration de méthode anonyme sont appelés externes ou variables capturées de la méthode anonyme. Par exemple, dans le segment de code suivant, n est une variable externe :
int n = 0;
Del d = delegate() { System.Console.WriteLine("Copy #:{0}", ++n); };
Contrairement aux variables locales, la durée de vie de la variable externe s'étend jusqu'à ce que les délégués qui font référence aux méthodes anonymes soient éligibles pour le garbage collection. Une référence à n est capturée au moment de la création du délégué.
Une méthode anonyme ne peut pas accéder aux paramètres ref ou out d'une portée externe.
Aucun code unsafe n'est accessible à l'intérieur du anonymous-method-block.