class Test { public delegate int Foo (T t, T u); public void Hello (Foo foo, U u) { } } class X { static int Add (int a, int b) { return a + b; } public static void Main () { Test test = new Test (); test.Hello (new Test.Foo (Add), 5); } }