interface I { } interface A { void Test () where U : I; } struct B : A { public void Test () where U2 : I { } } class C : I { public static void Main () { new B ().Test (); } }