// Type parameters with constraints: check whether we can invoke // things on the constrained type. using System; interface I { void Hello (); } class J { public void Foo () { Console.WriteLine ("Foo!"); } } class Stack where T : J, I { public void Test (T t) { t.Hello (); t.Foo (); } } class Test { } class X { public static void Main() { } }