0

为什么控制台应用程序之间的结构在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吗?

编辑

我尝试了以下方法,但出现错误:

在此处输入图像描述

进一步编辑

只是为了确认几个设置 - 这些似乎没有解决它!...

在此处输入图像描述

4

2 回答 2

4

这些只是您在开始新项目时可以使用的模板。当然,您可以用两种语言编写等效的代码。

Namespace ConsoleApplicationX

    Class Program

        Shared Sub Main()

            Dim p As New Program()
            ...

        End Sub

    End Class

End Namespace
于 2013-03-11T23:09:50.580 回答
1

您可能不应该创建入口点所在类型的实例。虽然这在任何一种语言中都是可能的,但在任何一种语言中都不是好的设计。

只需让您的Main方法创建其他类型的实例,而不是其Main本身所在的类型,并将其用于您的程序逻辑。

至于错误:

程序 [...] 不包含适用于入口点的静态“Main”方法

那是因为您的Main方法不是正确的签名。它应该是:

Shared Sub Main()

End Sub

Shared很重要(它相当于C# 中的static;它表示您不需要该类型的实例来调用该方法,这对于入口点很重要,因为在程序运行之前它不会有该类型的实例开始了。

于 2013-03-12T18:42:05.687 回答