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

 更新时间:2010年02月04日 13:19:55   作者:  
貌似我是在写C#的学习笔记哦,不过反正可以利用这个机会来好好温习下基础知识,这其中很多知识点都属于平时视而见的小知识
还记得读大学时初识计算机编程时的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);
}
}
}


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

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

Main()函数的返回值

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

相关文章

  • C#使用回溯法解决背包问题实例分析

    C#使用回溯法解决背包问题实例分析

    这篇文章主要介绍了C#使用回溯法解决背包问题,实例分析了背包问题的描述及C#解决方法,需要的朋友可以参考下
    2015-04-04
  • gridview 显示图片的实例代码

    gridview 显示图片的实例代码

    gridview 图片的二进制数据库存储和显示
    2013-04-04
  • c#操作附加数据库的方法

    c#操作附加数据库的方法

    这篇文章主要介绍了c#操作附加数据库的方法,涉及C#针对附加数据库的相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • C# 使用Winform 获取下拉框 选中的值

    C# 使用Winform 获取下拉框 选中的值

    这篇文章主要介绍了C# 使用Winform 获取下拉框 选中的值,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • C#自定义字符串压缩和解压缩的方法

    C#自定义字符串压缩和解压缩的方法

    这篇文章主要介绍了C#自定义字符串压缩和解压缩的方法,通过自定义C#字符串操作类实现对字符串的压缩与解压的功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • C#中接口(interface)的理解

    C#中接口(interface)的理解

    C#中接口(interface)的理解...
    2007-03-03
  • C# WCF简单入门图文教程(VS2010版)

    C# WCF简单入门图文教程(VS2010版)

    这篇文章主要介绍了WCF简单入门图文教程,版本是VS2010版,帮助大家轻松学习了解DataContract、ServiceContract等特性,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • C#使用动态规划解决0-1背包问题实例分析

    C#使用动态规划解决0-1背包问题实例分析

    这篇文章主要介绍了C#使用动态规划解决0-1背包问题,实例分析了C#动态规划算法的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • C#使用log4net的3种调用方法

    C#使用log4net的3种调用方法

    log4net是一个用于记录日志的开源框架,它是C#中最常用的日志记录工具之一,本文给大家介绍了C#使用log4net的3种调用方法,通过图文和代码给大家讲解的非常详细,需要的朋友可以参考下
    2024-03-03
  • C# Dockpanel入门基础必看篇

    C# Dockpanel入门基础必看篇

    这篇文章主要介绍了C# Dockpanel入门基础必看篇,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12

最新评论