using System; namespace test { public class App { public static void Main() { } } public class ThisClass<T, O> where T: ThisClass<T, O> where O: OtherClass<O, T> { internal int dummy; } public class OtherClass<O, T> where O: OtherClass<O, T> where T: ThisClass<T, O> { public void Test(T tc) { tc.dummy = 0; } } }