vs中控制台应用程序 main函数中 初始化args
分类:默认栏目
前面介绍了创建和使用函数时涉及的大多数简单技术,下面详细论述Main()函数。
Main()是C#应用程序的入口点,执行这个函数就是执行应用程序。也就是说,在执 行过程开始时,会执行Main()函数,在Main()函数执行完毕时,执行过程就结束了。这个函数有一个参数string[] args,但我们还没有说明这个参数的含义。本节将介绍该参数,以及如何使用它。
注意:
Main函数可以使用4种签名:
● static void Main()
● static void Main(string[] args)
● static int Main()
● static int Main(string[] args)
如果需要,可以忽略这里讨论的args。直到现在还在使用这个参数的原因,就是在VS中创建控制台应用程序时自动生成的Main()版本。
上面的第三、四个版本返回一个int值,它们可以用于表示应用程序如何终止,通常用作一种错误提示(但这不是强制的),一般情况下,返回0反映了“正常”的终止(即应用程序执行完毕,并安全地终止)。
Main()的参数args是从应用程序的外部接受信息的方法,这些信息在运行期间指定,其形式是命令行参数。
前面已经遇到了命令行参数,在从命令行上执行应用程序时,通常可以直接指定信息,如在执行应用程序时加载一个文件。例如,考虑Windows中的 Notepad应用程序。在命令行窗口中输入notepad,或者在Windows的Start菜单中选择Run选项,再在打开的窗口中输入 notepad,就可以运行该应用程序。也可以输入notepad "myfile.txt",结果是Notepad在运行时将加载文件myfile.txt,如果该文件不存在,Notepad也会创建该文件。这里 myfile.txt是一个命令行参数。利用args参数,可以编写以相同的方式工作的控制台应用程序。
在执行控制台应用程序时,指定的任何命令行参数都放在这个args数组中,接着可以根据需要在应用程序中使用这些参数。
下面用一个示例来说明。这个示例可以指定任意数量的命令行参数,每个参数都输出到控制台上。
试试看:命令行参数
(1) 在目录C:/BegVCSharp/Chapter6下创建一个新控制台应用程序Ch06Ex04。
(2) 把下述代码添加到Program.cs中:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("{0} command line arguments were specified:",
args.Length);
foreach (string arg in args)
Console.WriteLine(arg);
Console.ReadKey();
}
}
(3) 打开项目的属性页面(在Solution Explorer窗口中右击Ch06Ex04项目名称,选择Properties)。
(4) 选择Debug页面,在Command Line Arguments设置中添加所希望的命令行参数,如图6-7所示。
图 6-7
(5) 运行应用程序,结果如图6-8所示。
图 6-8
示例的说明
这里使用的代码非常简单:
Console.WriteLine("{0} command line arguments were specified:",
args.Length);
foreach (string arg in args)
Console.WriteLine(arg);
使用args参数与使用其他字符串数组类似。我们没有对参数进行任何异样的操作,只是把指定的信息写到屏幕上。
在本示例中,通过VS中的项目属性提供参数,这是一种很便捷的方式,只要在VS中运行应用程序,就可以使用相同的命令行参数,无需每次都在命令行提 示窗口中输入它们。在项目输出所在的目录(C:/BegVCSharp/Chapter6/Ch06Ex04/bin/Debug)下打开命令行窗口,输 入下述代码,也可以得到相同的结果:
Ch06Ex04 256 myFile.txt "a longer argument"
注意,每个参数都用空格分隔开,如果参数包含空格,就可以用双引号把参数括起来,这样才不会把这个参数解释为多个参数。