class Test { public static void Main(string[] args) { A a = new A(new A.B(D), 3); a.Run(); } public static void D(int y) { System.Console.WriteLine("Hello " + 3); } } class A { public delegate void B(T t); protected B _b; protected T _value; public A(B b, T value) { _b = b; _value = value; } public void Run() { _b(_value); } }