J'ai un doute sur la portée des variables dans les fonctions anonymes en C#.Portée des variables à l'intérieur des fonctions anonymes en C#
Tenir compte du programme ci-dessous:
delegate void OtherDel(int x);
public static void Main()
{
OtherDel del2;
{
int y = 4;
del2 = delegate
{
Console.WriteLine("{0}", y);//Is y out of scope
};
}
del2();
}
Mon VS2008 IDE donne les erreurs suivantes: [pratique est une classe à l'intérieur namespace pratique]
1.error CS1643: Tous les chemins de code renvoient une valeur dans la méthode anonyme de type 'Practice.Practice.OtherDel' 2.erreur CS1593: Le délégué 'OtherDel' ne prend pas les '0' arguments.
Il est indiqué dans un livre: Illustrated C# 2008 (Page 373) que la variable int y est dans la portée de la définition del2. Alors pourquoi ces erreurs.
# 1 est complètement correct, mais # 2: vérifiez la déclaration de type 'OtherDel' en haut du code de l'OP:' delegate void OtherDel (int x) '- il ne retourne rien. [EDIT: cela a été changé dans un edit à la question] – Richard
La réponse reflète la question au moment où j'ai posté ce; p –