[毕业生的商业软件开发之路]Main函数

简介:
    近期开始接触到在校学生、高校实习生和毕业生,在此说一下笔者对这些徘徊在职场门口的学生一些建议,希望能给这些初学者进入软件开发行业带来一些帮助,使得毕业生能更顺利的进入软件开发公司开始职场生涯,人生来一个完美的转弯。
----------------------------------------------------------------
Main函数
    C#中的Windows应用程序和命令行程序编译后的结果是EXE文件,而EXE文件是需要定义启动程序的入口点。这个入口点在C#中就是main函数,这点和C语言很类似。
在“第一个Windows应用程序”的C#工程中一开始就包含了一个“Program.cs”的源代码文件,该文件内容如下。[袁永福版权所有]
 
 
 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Windows.Forms;  
  4.    
  5. namespace第一个Windows应用程序  
  6. {  
  7.     staticclassProgram  
  8.     {  
  9.         /// <summary>  
  10.         /// 应用程序的主入口点。  
  11.         /// </summary>  
  12.         [STAThread]  
  13.         staticvoid Main()  
  14.         {  
  15.             Application.EnableVisualStyles( );  
  16.             Application.SetCompatibleTextRenderingDefault(false);  
  17.             Application.Run(newForm1( ));  
  18.         }  
  19.     }  
  20. }  
    这个文件中就定义了 Main函数,一个C#的Windows应用程序或者命令行程序中有而且只有一个Main函数。[袁永福版权所有]
    在 Main函数前面的代码“ [STAThread ]”通知了编译器该函数是采用单线程模式的。
在此处 Main函数没有定义参数和返回值,实际上Main函数可以定义个int类型的返回值,还可以定义一个字符串数组类型的参数,如“int Main( string[ ] args )”,这样可以获得命令行参数了,一般情况下具有图形用户界面的Windows应用程序不需要支持命令行参数,但命令行应用程序比较依赖命令行参数来调用功能。
    除了在 Main函数中获得命令行参数,开发者可以在任何地方使用类型System.Environment的CommandLine静态属性获得启动程序使用的命令行文本,也可以使用该类型的GetCommandLineArgs静态方法获得启动程序使用的命令行参数。
    命令行文本是一个字符串,例如在 Windows命令行界面中使用命令“c:\my.exe  *.jpg \a \s”, Environment类型的CommandLine属性值为“c:\my.exe  *.jpg \a \s”,而它的GetCommandLineArgs方法返回一个有4个元素的字符串数组,数组值为“c:\my.exe”、“*.jpg”、“\a”、“\s”。
    Main函数中的代码“Application .EnableVisualStyles( )”是让整个应用程序启动了 XP样式。
    当 Windows应用程序启动XP样式时,用户界面显示如下图。[袁永福版权所有]
    若没有启动XP样式时,用户界面显示如下图。
    Main函数中的代码“Application .Run(newForm1 ( ))”是创建一个窗体对象并运行该窗体。这个函数是同步的,只要窗体没有关闭,该函数就不会返回,当窗体关闭了,该函数返回,然后 Main函数后面就没有代码了,于是程序退出。[袁永福版权所有]



     本文转自xdesigner 51CTO博客,原文链接:http://blog.51cto.com/xdesigner/646088,如需转载请自行联系原作者





相关文章
|
3月前
|
JavaScript Java 项目管理
基于Java的大学生创新创业项目管理系统设计与实现(亮点:完整严谨的创新创业申请流程、适用于任何要求严格的审批类毕业设计)
基于Java的大学生创新创业项目管理系统设计与实现(亮点:完整严谨的创新创业申请流程、适用于任何要求严格的审批类毕业设计)
97 0
|
7天前
|
人工智能 Kubernetes Java
Java开发工程师如何紧跟技术前沿对于保持专业竞争力、提升工作效率以及适应行业发展?
【4月更文挑战第4天】Java开发工程师如何紧跟技术前沿对于保持专业竞争力、提升工作效率以及适应行业发展?
17 4
|
6月前
|
缓存 NoSQL Java
提升职场竞争力,掌握高级开发面试知识!
提升职场竞争力,掌握高级开发面试知识!
《接手一个6年的平台型系统:我是如何带领团队破局前行的》电子版地址
接手一个6年的平台型系统:我是如何带领团队破局前行的
57 0
《接手一个6年的平台型系统:我是如何带领团队破局前行的》电子版地址
|
数据库
论程序的成长—— 你写的代码有生命力吗?
做了五年多的程序员了,回过头来看了看以前发的一些帖子,颇有一番感想。我最得意的就是对数据访问的处理方法(我的数据访问层),倒不是说他有多么的强大、多么的完善,而是说他本身是在不断地“成长”,一直都没有死掉。
676 0
|
分布式计算 大数据 专有云
关涛:接手一个6年的平台型系统,我是如何带领团队破局前行的
12月20日的北京云栖大会上,由云栖社区主办的开发者技术进阶峰会再度开启,在此之前,我们整理了2017杭州云栖大会开发者技术进阶专场上的精彩分享内容。
5162 0

相关实验场景

更多