C#难点逐个击破(4):main函数

时间:2021-06-18 17:47:43 

还记得读大学时初识计算机编程时的C语言,Main(){},那时还不明白入口函数是什么意思,只知道照抄书本上的示例,一行一行地跑printf看。

在C#中Main()属于主入口函数,我们知识C、C#属于编译语言,可以想象为一段程序最开始的头部部分,由Main()函数进入逐语句进行编译后执行。假如html页面也称作编程语言的话,那么它就属于从上到下一句一句(下载)执行;js也是由上到下执行,不过js相当诡异,变量作用域要特别对待;在asp.net中一般情况下是以Page_Load(object sender,EventArgs e)可以认为是主入口。

Main()中的string[] args参数

Main()函数必须使用static修饰,也就是说它必须是静态的,不可实例化——可以实例化的话程序就完蛋了(多线程!?)。默认的Main()函数是带形式参数的,形如static void Main(string[] args),这里面一个很至关重要的问题就是:很多人都认为其中的参数仅当程序涉及要求用户输入参数值才必须带上。这就大错特错了,我之前也是这么理解的,直接今天我在写这篇文章时查询资料时才知道。请参考下面的代码


using System;

/******************************
* Chapter:C#难点逐个击破(四)
* Author:王洪剑
* Date:2010-1-15
* Blog:http://www.51obj.cn/
* Email:walkingp@126.com
* Description:容易出错的Main参数理解
* ***************************/
namespace TestMain
{
class Program
{
static void Main()//此处没有加string[] args
{
Console.WriteLine("请输入您的姓:");
String firstName = Console.ReadLine();
Console.WriteLine("请输入您的名:");
String lastName = Console.ReadLine();
Console.WriteLine("您的姓名是:{0}{1}", firstName, lastName);
}
}
}


C#难点逐个击破(4):main函数

其次就是参数的类型只能是string[],否则就会编译错误

C#难点逐个击破(4):main函数

那么该参数是起什么作用的呢?举个例子你就知道了,notepad c:\boot.ini,或者IEXPLORER.exe http://www.g.cn,没错,里面的参数就是用来编译exe要加入的参数,比如我们可以加一个参数min或者hide,然后加入相应的代码就可以实现程序运行时最小化运行或者隐藏运行。

Main()函数的返回值

Main()默认无返回类似,除此之外,还可以返回int,并且仅能返回int,这种返回int的使用情况并不多,在msdn描述到了使用批处理bat调用程序执行的返回结果,根据结果来判断程序是否顺利执行。返回类型在控制台中并不显示"
本节源码下载

标签:C#,main函数
0
投稿

猜你喜欢

  • 程序员最喜欢的ThreadLocal使用姿势

    2022-10-22 21:14:55
  • Android开发之DialogFragment用法实例总结

    2023-08-30 13:20:21
  • flutter图片组件核心类源码解析

    2023-09-14 16:29:00
  • java实现微信点餐申请微信退款

    2022-10-29 19:07:57
  • flutter中的布局和响应式app方法示例

    2023-02-19 19:14:52
  • java构造函数示例(构造方法)

    2022-05-08 19:06:03
  • Spring在SingleTon模式下的线程安全详解

    2021-10-08 11:39:31
  • Android百度地图应用之MapFragment的使用

    2022-07-07 21:16:37
  • 详解Android.activity销毁流程的工作原理

    2021-11-17 19:12:35
  • C#实现将字符串转换成日期格式的方法

    2021-07-18 06:19:11
  • Spring Cloud Alibaba Nacos Config配置中心实现

    2022-08-02 00:43:05
  • C#实现的xml操作类完整实例

    2023-02-12 03:52:16
  • C# DataTable 转换为 实体类对象实例

    2021-12-25 02:14:51
  • 使用注解@Recover优化丑陋的循环详解

    2021-08-05 15:11:13
  • mybatis处理枚举类的简单方法

    2022-05-22 09:08:20
  • SpringBoot实现PPT格式文件上传并在线预览功能

    2023-07-22 14:44:56
  • Android开发中使用Intent打开第三方应用及验证可用性的方法详解

    2021-08-12 19:28:47
  • Android 优雅的实现通用格式化编辑

    2023-02-08 05:24:02
  • C#中分部类和分部方法的应用

    2022-08-16 06:49:05
  • JAVA内存溢出解决方案图解

    2023-07-22 14:57:23
  • asp之家 软件编程 m.aspxhome.com