1 interface ICovariant
<out T
> { }
2 interface IContravariant
<in T
> { }
4 delegate ICovariant
<U
> Cov1
<out U
> (IContravariant
<U
> x
);
5 delegate ICovariant
<U
> Cov2
<out U
> (IContravariant
<ICovariant
<U
>> x
);
6 delegate ICovariant
<IContravariant
<IContravariant
<U
>>> Cov3
<out U
> (IContravariant
<IContravariant
<IContravariant
<ICovariant
<U
>>>> x
);
7 delegate ICovariant
<int> Cov4
<out U
> ();
8 delegate IContravariant
<int> Cov5
<out U
> ();
10 delegate IContravariant
<U
[]> Contra5
<in U
> (U u
, ICovariant
<U
> x
);
11 delegate IContravariant
<U
[]> Contra6
<in U
> ();
12 delegate IContravariant
<U
> Contra7
<in U
> (U u
, ICovariant
<U
> x
);
13 delegate IContravariant
<ICovariant
<U
>> Contra8
<in U
> (U u
, ICovariant
<U
> x
);
15 interface ITest_1
<out T
>
17 ICovariant
<T
> CovariantHandler (IContravariant
<T
> x
);
20 interface ITest_2
<in T
>
22 IContravariant
<T
> CovariantHandler (ICovariant
<T
> x
);
27 public static void Main ()