2011-08-13 25 views

回答

3

这是一个错误,没有什么是越来越重。在任何地方都没有预先烘焙的Sub Main(),特别是不在名为HelloWorld的类中。它恰好工作,因为vb.net编译器对它不是很挑剔。将此代码粘贴到一个类中以供您自己查看:

Class Test 
    Overloads Sub IdontOverloadAnything() 

    End Sub 
End Class 

VB.NET编译器倾向于使魔术发生。这不是其中之一,主要()魔法在CLR中。大多数C#程序员都会认为这是该语言中的一个错误。我不能不同意。

+0

那么只需'Shared Sub'就足够了? – BigOmega

+0

是的,公共共享小组。 –

0

在VB6中,就像在大多数“古老的”编程语言中一样,有一句格言“只能有一个! (见电影“汉兰达”)。在模块或类中只能有一个具有相同名称的Function或Sub。在VB.NET中,与C#中一样,只要具有不同的签名,就可以拥有多个具有相同名称的方法。这意味着他们需要有不同数量的参数或不同类型的参数。这些函数然后被称为超载。在VB中,您可以将可选关键字Overloads添加到这些函数或子集。

Public Sub Test(s As String) 
Public Sub Test(i As Integer) 
Public Sub Test(s As String, i As Integer) 

这样可以。然而,

Public Sub Test(t As String) 

不会,因为存在一个重载的方法,只有一个字符串参数。不同的参数名称是不够的。

0

由于存在标准的Shared Sub Main,所以您将其重载。您可以省略重载。

2

由于标准Sub Main没有参数,因此您需要使用带有参数的新Main程序overloading

相关问题