Mega Code Archive

 
Categories / C# / Language Basics
 

Lifetime of outer variables is aligned with the delegate

using System; public delegate void DelegateClass(out int var); public class Starter {     public static void Main() {         DelegateClass del = MethodA();         int var;         del(out var);         del(out var);         del(out var);         Console.WriteLine(var);     }     public static DelegateClass MethodA() {         int increment = 0;         return delegate(out int var) {             var = ++increment;         };     } }