5 public delegate int IntDelegate (int x
);
6 public delegate T
[] TDelegate
<T
> ();
9 public int intFunction (int x
) {
13 public IntDelegate
getIntDelegate () {
17 public virtual int virtIntFunction (int x
) {
21 public IntDelegate
getVirtIntDelegate () {
22 return virtIntFunction
;
25 public T
[] tFunction () {
29 public TDelegate
<T
> getTDelegate () {
33 public static T
[] staticTFunction () {
37 public TDelegate
<T
> getStaticTDelegate () {
38 return staticTFunction
;
43 public static int Main () {
44 Gen
<ClassA
> ga
= new Gen
<ClassA
> ();
45 IntDelegate id
= ga
.getIntDelegate ();
46 TDelegate
<ClassA
> tda
= ga
.getTDelegate ();
47 IntDelegate vid
= ga
.getVirtIntDelegate ();
48 TDelegate
<ClassA
> stda
= ga
.getStaticTDelegate ();
52 if (tda ().GetType () != typeof (ClassA
[]))
56 if (stda ().GetType () != typeof (ClassA
[]))
59 tda
= (TDelegate
<ClassA
>)Delegate
.CreateDelegate (typeof (TDelegate
<ClassA
>),
60 typeof (Gen
<ClassA
>).GetMethod ("staticTFunction"));
62 if (tda ().GetType () != typeof (ClassA
[]))