none
一个关于class Program的小问题 RRS feed

  • 问题

  • 在新建一个控制台应用程序后,默认代码里面都有一个class Program块起什么作用?如果我在这个程序块中构建类和删去这个区块建立类或程序的其他部分有啥区别?
    wavetekgroup
    2011年3月2日 2:51

答案

  • 函数入口点你说对了。是static main()方法。但实际没有默认类这么一说的,你的代码中,只能出现一个static main()的方法,你写在哪都可以。

     


    2011 c# mvp China
    2011年3月3日 2:11
    版主

全部回复

  • 你好!

    class Program 只是新增目时按默认模板生成的代码,主要是定义程序的入口 Main 方法 。若删除 program.cs 将 main 方法定义的其它类也是可以的,没有明显的区别。


    知识改变命运,奋斗成就人生!
    2011年3月2日 3:21
    版主
  • 谢谢,你的回复我明白一些了。那也就是说程序不一定都要写在这个默认的class Program 区块里啦,是吧?也就是把它删除只要程序写在命名空间区块里面都行?
    wavetekgroup
    2011年3月2日 3:28
  • 你好!

    嗯,但我不明白你说的“命名空间区块”是什么意思,但你删除 program.cs 就需要在其它类中添加 static void Main(string[] args) 方法。 


    知识改变命运,奋斗成就人生!
    2011年3月2日 3:33
    版主
  • 嘿嘿,我的意思是就和去皮一样,把class Program和外面的{}去掉,入口函数main()啥的都还在,明白了吧?
    wavetekgroup
    2011年3月2日 3:40
  • 嘿嘿,我的意思是就和去皮一样,把class Program和外面的{}去掉,入口函数main()啥的都还在,明白了吧?
    wavetekgroup


    不能这么写,您试一下就知道了,编译都不通过。

    入口函数一定要写到某个类里,命名空间只是给类再归组分类而已,所有的代码都需要通过类来执行。

    2011年3月2日 3:54
    版主
  • 那么可不可以理解,入口函数其实也就是一个类的一个静态方法呢?


    wavetekgroup
    2011年3月2日 6:34
  • 对但入口函数名称必须是 Main 你可以参考下 MSDN 的解释 

    http://msdn.microsoft.com/zh-cn/library/ms228506(v=vs.80).aspx


    知识改变命运,奋斗成就人生!
    2011年3月2日 7:06
    版主
  • 非常感谢楼主的指点,谢谢,我还要一问

    继续上一个问题,作为包含入口点函数Main()的默认类Class Program,在其内部声明其他类和与之平行命名其他类有何区别吗?


    万物皆变,规则永恒。
    2011年3月3日 1:48
  • 函数入口点你说对了。是static main()方法。但实际没有默认类这么一说的,你的代码中,只能出现一个static main()的方法,你写在哪都可以。

     


    2011 c# mvp China
    2011年3月3日 2:11
    版主