public static void TestNonGenInterface_GenType() { I ic2Int = new CC2 <int>(); I ic2Object = new CC2 <object>(); I ic2String = new CC2 <string>(); // TEST2: test non generic virtual method Eval((ic2Int.method1().ToString()).Equals("3")); Eval((ic2String.method1().ToString()).Equals("3")); Eval((ic2Object.method1().ToString()).Equals("3")); // TEST3: test generic virtual method Eval((ic2Int.method2 <int>().ToString()).Equals("4")); Eval((ic2Int.method2 <object>().ToString()).Equals("4")); Eval((ic2Int.method2 <string>().ToString()).Equals("4")); Eval((ic2Int.method2 <A <int> >().ToString()).Equals("4")); Eval((ic2Int.method2 <S <string> >().ToString()).Equals("4")); Eval((ic2String.method2 <int>().ToString()).Equals("4")); Eval((ic2String.method2 <object>().ToString()).Equals("4")); Eval((ic2String.method2 <string>().ToString()).Equals("4")); Eval((ic2String.method2 <A <int> >().ToString()).Equals("4")); Eval((ic2String.method2 <S <string> >().ToString()).Equals("4")); Eval((ic2Object.method2 <int>().ToString()).Equals("4")); Eval((ic2Object.method2 <object>().ToString()).Equals("4")); Eval((ic2Object.method2 <string>().ToString()).Equals("4")); Eval((ic2Object.method2 <A <int> >().ToString()).Equals("4")); Eval((ic2Object.method2 <S <string> >().ToString()).Equals("4")); }