Vb.net 如何在类和模块中定义主方法?
我只是在练习一些编码,并注意到我能够在VB.NET中使用类而不是模块。因此,我将模块替换为类,并收到以下错误消息: 在“practicevb”中未找到具有适当签名的可访问“Main”方法。practicevb 我确保在Vb.net 如何在类和模块中定义主方法?,vb.net,class,module,Vb.net,Class,Module,我只是在练习一些编码,并注意到我能够在VB.NET中使用类而不是模块。因此,我将模块替换为类,并收到以下错误消息: 在“practicevb”中未找到具有适当签名的可访问“Main”方法。practicevb 我确保在Properties>Application>startup Objects中正确设置了启动对象 如果我将其更改回模块,错误消息将消失,但我希望将其保留为类,因为我的代码的其他部分更改为类,并且没有返回错误消息 Class Atic Sub Main()
Properties>Application>startup Objects
中正确设置了启动对象
如果我将其更改回模块,错误消息将消失,但我希望将其保留为类,因为我的代码的其他部分更改为类,并且没有返回错误消息
Class Atic
Sub Main()
Console.WriteLine("Hello, this proram will calcaulate the quadratic forumla ax^2 + bx + c")
Dim Quads As New Quads
Quads.Calc()
Console.ReadKey()
End Sub
End Class
只是共享所有成员的类(在C#中是静态的)
如果要将模块更改为类,只需将Shared
修饰符添加到其成员:
Shared Sub Main() ...
尽管如此,我还是认为这是一个放置
主功能的理想位置。如果你是新手,请将主功能放置在上
类是一个不同于模块的概念
模块是一个函数集合,但是类
是一个模板,应该实例化一个对象并使用它
首先浏览VB.NET中的OOP基础知识
如果您是专业人士
使用Shared Sub-Main()
..我猜您的应用程序是一个命令行应用程序。让课堂公开和共享
Public Shared Sub Main()
End Sub
Main方法是应用程序的入口点。我需要在不实例化对象的情况下被调用,因为在程序启动之前没有办法这样做
要么像bene所说的那样使这个方法和类保持静态,要么最好为这个入口点设置一个模块,然后实例化一个对象并从那里开始。对于任何未来的读者,如果您的Main()
位于模块中(不是类模块),并且您仍然会遇到这个错误,确保该方法不采用任何参数。与C++不同,VB.NET不把命令行参数作为主方法的参数。相反,您应该定义一个零参数Main()方法,并使用My.Application.CommandLineArgs
访问提供的参数。在我意识到这一点之前,我猛撞了一段时间。为您的项目定义一个公共Sub-Main
过程。声明它为Shared
当且仅当你在一个类中定义它时。我认为他被C#!:-)中的核心OOP搞糊涂了我想他是新来的OOP
编程高手,所以我想知道像(C#中的静态)这样的东西。
会让他困惑:-)好的,很酷,谢谢你提供的所有信息。诺利亚斯的建议奏效了。我想我会把它作为一个模块,因为这听起来是个好主意。