This is related to my posting on VB.NET Shadowing. Basically, the method overloading/hiding rules in VB.NET and C# are different. This does go to show that C# and VB.NET are different semantically as well as syntactically, though not necessarily in a good way.
This is also a good indication why I think VB.NET is a dead-end. Since most MS developers prefer C# (or so it seems) its safe to assume that most samples will use C#. As this brainteaser shows, translating these samples to VB.NET may not be so trivial.