1.2.3 Main
初学者主题:什么是方法?
从语法上说,C#的一个方法(method)是一个已命名的代码块,这个代码块由一个方法声明(例如static void Main())引入,后跟一对大括号({}),其中包含零条或多条语句。方法可以执行计算和/或操作。与书写语言中的段落相似,方法提供了对代码进行结构化和组织的一种方式,使之更易读。更重要的是,方法避免了重复代码。方法声明除了负责引入方法之外,还要定义方法名以及要传入和传出方法的数据。在代码清单1-3中,Main()后跟{ ... }便是一个C#方法的例子。
C#程序是从Main方法开始执行的。该方法以static void Main()开头。通过在命令控制台中输入HelloWorld.exe来执行程序时,程序会启动,解析出Main的位置,并开始执行其中的第一条语句,如代码清单1-3所示。
代码清单1-3 HelloWorld分解示意图
|
虽然Main方法声明可以进行某种程度的改变,但关键字static和方法名Main是始终都需要的。
高级主题:Main方法声明
尽管声明Main方法的时候可以没有参数或返回类型,但是C#支持指定其中任何一个。代码清单1-4展示了Main方法的完整声明。
代码清单1-4 带有参数和返回类型的Main方法
static int Main(string[] args) |
args参数是与命令行参数对应的一个字符串数组。然而,数组的第一个元素不是程序名称,而是在可执行文件名称 之后出现的第一个命令行参数,这一点与C和C++是不同的。要想获取执行程序所用的完整命令,可以使用System.Environment.CommandLine。
Main的int返回值是一个状态码,它标识着程序执行是否成功。一个非零的返回值通常意味着一个错误。
语言对比:C++/Java—— main()是全部小写的
与C风格的“前辈们”不同,C#的Main方法名使用的是大写的M,以便与C#的Pascal风格的命名约定保持一致。
将Main方法指定为static意味着类定义中的其他方法能直接调用它。如果不指定static,启动程序的命令控制台在调用方法之前,还需执行额外的工作(称为实例化,即instantiation)。第5章会用一整节的内容来专门讲述静态成员。
在Main()之前放一个void,表明该方法不返回任何数据(将在第2章进一步解释)。
C#直接照搬的C/C++风格的一个特殊的特征是用大括号来封闭一个构造(比如类或者方法)的主体。例如,Main方法的主体就是用大括号封闭起来的。在本例中,方法主体中只有一条语句。
| 回书目 上一节 下一节 |
|
||||
| · 龙芯要做中国的“奔腾” · 2008年上半年IT技术图.. · 虚拟化的“赤壁之战” · 服务器节能与绿色IT · 微软出价446亿美元收购.. · 脉冲无线电uwb专题 · 802.11n:下一代的无线.. · 云计算时代来临 |
· IT工程师该不该考CCIE.. · 浏览器的战国时代 · 2008年上半年全国软考.. · 无线网络环境 · 无线网状网(MESH) · 无线重中之重:安全问题 · 网络故障排除宝典 · Windows Server 2008专.. |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · 无线网状网(MESH) · Windows远程桌面应用 · C#技术开发指南 |
· Apache技术专题 · Windows集群服务应用 · C#技术开发指南 · 文档格式标准开战 OOXM.. · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 解析35岁技术人的价值.. |
|||