classFoo{publicvirtualvoidQuux(int a) {Console.WriteLine("Foo.Quux(int)"); }}classBar:Foo{publicoverridevoidQuux(int a) {Console.WriteLine("Bar.Quux(int)"); }publicvoidQuux(object a) {Console.WriteLine("Bar.Quux(object)"); }}classBaz:Bar{publicoverridevoidQuux(int a) {Console.WriteLine("Baz.Quux(int)"); }publicvoidQuux<T>(paramsT[] a) {Console.WriteLine("Baz.Quux(params T[])"); }}voidMain(){newBar().Quux(42);newBaz().Quux(42);}