2011-08-13 55 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

相關問題