3 public delegate int IntDelegate (int x);
4 public delegate T[] TDelegate<T> ();
7 public int intFunction (int x) {
11 public IntDelegate getIntDelegate () {
15 public virtual int virtIntFunction (int x) {
19 public IntDelegate getVirtIntDelegate () {
20 return virtIntFunction;
23 public T[] tFunction () {
27 public TDelegate<T> getTDelegate () {
31 public static T[] staticTFunction () {
35 public TDelegate<T> getStaticTDelegate () {
36 return staticTFunction;
41 public static int Main () {
42 Gen<ClassA> ga = new Gen<ClassA> ();
43 IntDelegate id = ga.getIntDelegate ();
44 TDelegate<ClassA> tda = ga.getTDelegate ();
45 IntDelegate vid = ga.getVirtIntDelegate ();
46 TDelegate<ClassA> stda = ga.getStaticTDelegate ();
50 if (tda ().GetType () != typeof (ClassA[]))
54 if (stda ().GetType () != typeof (ClassA[]))