[毕业生的商业软件开发之路]C#中的Main函数
近期开始接触到在校学生、高校实习生和毕业生,在此说一下笔者对这些徘徊在职场门口的学生一些建议,希望能给这些初学者进入软件开发行业带来一些帮助,使得毕业生能更顺利的进入软件开发公司开始职场生涯,人生来一个完美的转弯。[袁永福版权所有]
--------------------------------------
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
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[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函数后面就没有代码了,于是程序退出。[袁永福版权所有]
posted on 2011-08-22 13:47 袁永福 电子病历,医疗信息化 阅读(1314) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人