2 public class Z : IGenericInterface<Z>
8 Z IGenericInterface<Z>.Start ()
14 public interface IGenericInterface<T>
19 public class A<Y, Y2, W>
20 where Y : Z, IGenericInterface<Y>
24 public void SomeOperation (W w)
30 public void SomeOtherOperation (Y y)
39 public static int Main ()
41 var a = new A<Z, object, Z> ();
42 a.SomeOperation (new Z ());
43 a.SomeOtherOperation (new Z ());