Coming from C#…
I was looking at this website
http://www.harding.edu/fmccown/vbnet_csharp_comparison.html
And noticed that it said
public static void Main(string[] args) {
is equivalent to
Overloads Shared Sub Main(ByVal args() As String)
So… what is that “Overloads” all about?
It is a mistake, nothing is getting overloaded. There is no pre-baked Sub Main() anywhere, especially not in a class named HelloWorld. It happens to work because the vb.net compiler isn’t very picky about it. Paste this code in a class to see for yourself:
The VB.NET compiler tends to make magic happen. This is not one of those cases, the Main() magic is in the CLR. Most any C# programmer would consider this a bug in the language. I can’t disagree.