using System; delegate bool D (); class Data { public D d; } public class Test { int value; D change; static void Foo (int i, D d) { } public static void Main () { } void TestMe () { if (true) { Data data = null; if (data != null) { D d2 = delegate { return true; }; change += d2; data.d += delegate { change -= d2; Foo (10, delegate { data = null; return false; } ); return true; }; } } } }