using System; struct S { } abstract class B { public abstract void Foo (U x) where U : T1, T2; } class C : B, S> { public override void Foo (U x) { } public static int Main () { var m = typeof (C).GetMethod ("Foo"); var ta = m.GetGenericArguments ()[0].GetGenericParameterConstraints (); if (ta.Length != 1) return 1; Console.WriteLine ("ok"); return 0; } }