Quux(); // Bar.Quux() beacuse there is an overload
Console.WriteLine("Bar.Quux(), " + name);
// name doesn't have value
// Bar.Quux(params object[] args) because Bar have a suitable method
Console.WriteLine("Bar.Quux(params object[])");
((Foo)this).Quux(); // Bar.Quux() beacuse there is an overload
Console.WriteLine("Bar.Quux(), " + name); // name == "Baz"