将C#中的“程序”结构复制到VB.NET中

时间:2013-03-11 23:06:12

标签: c# vb.net

为什么控制台应用程序之间的结构在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代码进行等效实现?

修改

我尝试过以下但是错误:

enter image description here

进一步编辑

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

enter image description here

2 个答案:

答案 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;它表示您不需要该类型的实例来调用该方法,这对于入口点很重要,因为它很重要在程序启动之前不会有该类型的实例。