2011-04-01 99 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