none
我在VS2008中新建一个ConsoleApplication为什么出现Module而不是Class? RRS feed

  • 问题

  • 为了试一个刚学的Constructor功能,我在VS2008里选择NEW-->Project-->Visual Basic-->Windows-->Console Application,生成的项目里包含两个文件:My Project和Moduke1.VB。

    在Moduke1.VB里有Module Module1 和一个Main()。虽然我看了前边关于Class和Module的帖子,还是没明白。

    问题1:如果我想使用Class而不是Module可以吗?如果可以,怎么办?

    问题2:我输入一段代码,打算Create a constructor(代码如下)。却出现两个错误:
    Shared 'Sub New' cannot be declared 'Public'.
    Shared 'Sub New' cannot have any parameters.
    请问是什么原因,怎样解决?


    本人初学.NET,提出的问题肯定很初级。希望各位大侠不吝赐教!!!

    '附源程序
    Module Module1

        Sub Main()

        End Sub
        Structure Person
            Public firstName As String
            Public lastName As String
            Public age As Integer

        End Structure
        Public Sub New(ByVal _firstName As String, ByVal _lastName As String, ByVal _age As Integer)

        End Sub

    End Module

    2010年1月9日 5:01

答案

全部回复

  • 你好!
         可以使用类:
    Class MyClass

        Shared Sub Main()
            Console.WriteLine("asdf")
        End Sub

    End Class
    周雪峰
    2010年1月9日 6:30
    版主
  • 多谢版主回复!

    刚才又检查了一遍发现我应该把后边的Public Sub New()放到Structure里边。真是太笨了!

    如果用的是C#,建立一个ConsoleApplication之后,自动生成很多东西:有命名空间,还有Class:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
            }
        }
    }

    而用VB生成的只有一个Module,感觉缺少了很多东西。它们真的是一样吗?

    2010年1月9日 7:32
  • 2010年1月11日 4:10
    版主
  • 多谢回复!
    2010年1月13日 0:12