热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

近期开始接触到在校学生、高校实习生和毕业生,在此说一下笔者对这些徘徊在职场门口的学生一些建议,希望能给这些初学者进入软件开发行业带来一些帮助,使得毕业生能更顺利的进入

近期开始接触到在校学生、高校实习生和毕业生,在此说一下笔者对这些徘徊在职场门口的学生一些建议,希望能给这些初学者进入软件开发行业带来一些帮助,使得毕业生能更顺利的进入软件开发公司开始职场生涯,人生来一个完美的转弯。[袁永福版权所有]
--------------------------------------

Main函数

C#中的Windows应用程序和命令行程序编译后的结果是EXE文件,而EXE文件是需要定义启动程序的入口点。这个入口点在C#中就是main函数,这点和C语言很类似。

在“第一个Windows应用程序”的C#工程中一开始就包含了一个“Program.cs”的源代码文件,该文件内容如下。

 

using System;
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函数后面就没有代码了,于是程序退出。[袁永福版权所有]

 



推荐阅读
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 在分析Android的Audio系统时,我们对mpAudioPolicy->get_input进行了详细探讨,发现其背后涉及的机制相当复杂。本文将详细介绍这一过程及其背后的实现细节。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 本文详细解析了Java类加载系统的父子委托机制。在Java程序中,.java源代码文件编译后会生成对应的.class字节码文件,这些字节码文件需要通过类加载器(ClassLoader)进行加载。ClassLoader采用双亲委派模型,确保类的加载过程既高效又安全,避免了类的重复加载和潜在的安全风险。该机制在Java虚拟机中扮演着至关重要的角色,确保了类加载的一致性和可靠性。 ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 本文探讨了如何在 Java 中将多参数方法通过 Lambda 表达式传递给一个接受 List 的 Function。具体分析了 `OrderUtil` 类中的 `runInBatches` 方法及其使用场景。 ... [详细]
  • 字符串学习时间:1.5W(“W”周,下同)知识点checkliststrlen()函数的返回值是什么类型的?字 ... [详细]
  • 本文主要探讨了Java中处理ActionEvent事件的接口,以及一些常见的编程问题和解决方案,包括方法重载、成员变量访问、镜片质量检测等。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 基于Linux开源VOIP系统LinPhone[四]
    ****************************************************************************************** ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 属性类 `Properties` 是 `Hashtable` 类的子类,用于存储键值对形式的数据。该类在 Java 中广泛应用于配置文件的读取与写入,支持字符串类型的键和值。通过 `Properties` 类,开发者可以方便地进行配置信息的管理,确保应用程序的灵活性和可维护性。此外,`Properties` 类还提供了加载和保存属性文件的方法,使其在实际开发中具有较高的实用价值。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • Win10 S系统与Chrome浏览器兼容性问题分析
    2017年5月2日,微软在美国推出了最新的Windows 10 S操作系统,专为教育领域设计,旨在为教师和学生提供一系列高效的产品和服务。该系统的最大特点是其简洁的设计和快速的响应速度,然而在与某些应用的兼容性方面,特别是Chrome浏览器,仍存在一些问题。本文将深入分析这些兼容性问题,并探讨可能的解决方案。 ... [详细]
author-avatar
黯嘫吢碎1984rv
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有