为什么控制台应用程序之间的结构在C#
和VB.NET
之间看起来如此不同?
在C#
中,我经常创建一个Program类的实例:
namespace ConsoleApplicationX {
class Program {
static void Main(string[] args) {
Program p;
p = new Program();
...
...
在VB.NET
示例中,我Main
位于名为__ZooWork.vb
的文件中,如下所示:
Module __ZooWork
Sub Main()
...
...
我是否可以对C#
上面的VB.NET
代码进行等效实现?
修改
我尝试过以下但是错误:
进一步编辑
只是为了确认一些设置 - 这些似乎没有解决它!...
答案 0 :(得分:4)
这些只是您在启动新项目时可以使用的模板。当然,您可以用两种语言编写等效代码。
Namespace ConsoleApplicationX
Class Program
Shared Sub Main()
Dim p As New Program()
...
End Sub
End Class
End Namespace
答案 1 :(得分:1)
您可能不应该创建入口点所在类型的实例。虽然在任何一种语言中肯定都是可能的,但它们的设计并不好。
让你的Main
方法创建一个其他类型的实例,而不是Main
本身所在的类型,并将其用于程序逻辑。
至于错误:
程序[...]不包含适用于入口点的静态“主”方法
那是因为你的Main
方法没有正确的签名。它应该是:
Shared Sub Main()
End Sub
Shared
很重要(它相当于C#中的static
;它表示您不需要该类型的实例来调用该方法,这对于入口点很重要,因为它很重要在程序启动之前不会有该类型的实例。