2011-04-01 98 views
1

這是我的第一篇文章。請原諒我提出一個基本問題,因爲我是編程新手。我的VB 2003代碼無法編譯

我有下面的代碼,它只是沒有編譯

Module Module1 

    Public Sub Test 

     dim a as New TestClass() 
     dim b as string 
     b = a.ReturnString() 

    End Sub 

End Module 

Public Class TestClass 

    Public Function ReturnString() as string 
     Return "Hello World" 
    End Function 
End Class 

編輯:問題解決

課:需要使用它,非常感謝氏族和所有以前實例類你的!

+0

你什麼編譯器錯誤?它看起來好像沒有從您的IDE中正確複製並粘貼您的代碼*,因爲大小寫不正確。 VB.NET會自動糾正這一點。 – 2011-04-01 00:13:19

+0

我用命令行編譯 – Sean 2011-04-01 00:18:32

+0

您仍然可以粘貼你知道錯誤。 – Blindy 2011-04-01 00:23:25

回答

0

你的TestClass使用前需要進行實例化。實例化一個類,使用關鍵字的類名稱之前

暗淡了作爲識別TestClass()

暗淡B中串

B = a.ReturnString()

+0

謝謝,最終它的工作。 – Sean 2011-04-01 15:34:03

2

你有2個End Class報表,刪除一個。

+0

+1我的回答,@Bala在這種情況下,'完Class'將需要在另一條線路至少 – JaredPar 2011-04-01 00:16:35

+0

@JaredPar噢忘記了大約vb.net – 2011-04-01 00:18:10

+0

仍可末級後不能編譯刪除,任何建議? – Sean 2011-04-01 00:18:13

1

看起來你需要把你的Test方法Module內,以便它編譯

Module Module1 
    Public Sub Test 
     dim a as TestClass() 
     dim b as string 
     b = a.ReturnString() 
    End Sub 
End Module 

Public Class TestClass 

    Public Function ReturnString() as string 
     Return "Hello World" 
    End Function 
End Class 

編輯

正如由Blindy指出,你有雙End Class聲明

+0

結束,但仍不能編譯 – Sean 2011-04-01 00:20:52

+0

我正要建議,但我不知道,如果允許VB免費功能或沒有;我知道CLR允許他們 – Blindy 2011-04-01 00:22:27

+0

@大衛,你得到什麼錯誤?這將有很大的幫助 – JaredPar 2011-04-01 00:45:46

1

嘗試類似這樣的

vbc <filename>.vb 

Public Class Main 

     Shared Sub Main 
     Dim main as New Main 
     main.Test() 
    End Sub 

    Public Sub Test 
     dim a as New TestClass 
     dim b as string 
     b = a.ReturnString() 
    End Sub 

    Public Class TestClass 

     Public Function ReturnString() as string 
      Return "Hello World" 
     End Function 
    End Class 
End Class