public static void Main()
Console.WriteLine(t.foo(sum, 1));
Func<int,int, int> pippo =sum;
Console.WriteLine(t1.foo(pippo, 1));
Console.WriteLine(t2.foo( (int a,int b) =>{ return a+b; }, 1));
public static int sum(int a, int b){
interface Itest<T> where T: struct
public class test : Itest<test>
public int foo(Func<int,int, int> callBack, int a)
return (T) new object() ;