3 public abstract class A<T>
5 public abstract A<MM> For<MM> () where MM : T;
8 public class B<U, X, V> : A<V>
19 public override A<PP> For<PP> () // base constraint is copied as PP : V
21 return _inner.For<PP> ();
25 public class Test : A<Test>
27 public static void Main ()
30 new B<Test, Test, Test> (t).For<Test> ();
33 public override A<QQ> For<QQ> ()