using System; public class Foo { public static void Main () { new Foo (new object[] { "foo" }); } public Foo (object[] array) : this (array, array[0]) {} public Foo (object[] array, object context) { if (array.GetType().IsArray) Console.WriteLine ("ok! array is correct type"); else Console.WriteLine ("boo! array is of type {0}", array.GetType ()); if (array[0] == context) Console.WriteLine ("ok! array[0] == context!"); else Console.WriteLine ("boo! array[0] != context!"); foreach (char ch in "123") { DoSomething += delegate (object obj, EventArgs args) { Console.WriteLine ("{0}:{1}:{2}", ch, array[0], context); }; } } public event EventHandler DoSomething; }