近期开始接触到在校学生、高校实习生和毕业生,在此说一下笔者对这些徘徊在职场门口的学生一些建议,希望能给这些初学者进入软件开发行业带来一些帮助,使得毕业生能更顺利的进入软件开发公司开始职场生涯,人生来一个完美的转弯。[袁永福版权所有]
--------------------------------------
Main函数
C#中的Windows应用程序和命令行程序编译后的结果是EXE文件,而EXE文件是需要定义启动程序的入口点。这个入口点在C#中就是main函数,这点和C语言很类似。
在“第一个Windows应用程序”的C#工程中一开始就包含了一个“Program.cs”的源代码文件,该文件内容如下。
using System.Collections.Generic;
using System.Windows.Forms;
namespace 第一个Windows应用程序
{
static class Program
{
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main()
{
Application.EnableVisualStyles( );
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1( ));
}
}
}
这个文件中就定义了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(new Form1( ))”是创建一个窗体对象并运行该窗体。这个函数是同步的,只要窗体没有关闭,该函数就不会返回,当窗体关闭了,该函数返回,然后Main函数后面就没有代码了,于是程序退出。[袁永福版权所有]