您好,欢迎访问三七文档
C#编程指南命令行参数(C#编程指南)VisualStudio2013通过以下方式之一定义方法,可以将参数发送至Main方法。C#staticintMain(string[]args)C#staticvoidMain(string[]args)说明若要在Windows窗体应用程序中的Main方法中启用命令行参数,必须手动修改program.cs中Main的签名。Windows窗体设计器生成的代码创建没有输入参数的Main。也可以使用Environment.CommandLine或Environment.GetCommandLineArgs从控制台或Windows应用程序中的任何位置访问命令行参数。Main方法的参数是表示命令行参数的String数组。一般是通过测试Length属性来确定参数是否存在,例如:C#if(args.Length==0){System.Console.WriteLine(Pleaseenteranumericargument.);return1;}还可以使用Convert类或Parse方法将字符串参数转换为数值类型。例如,下面的语句使用Parse方法将string转换为long数字:longnum=Int64.Parse(args[0]);也可以使用别名为Int64的C#类型long:longnum=long.Parse(args[0]);还可以使用Convert类的方法ToInt64完成同样的工作:longnum=Convert.ToInt64(s);有关更多信息,请参见Parse和Convert。示例下面的示例演示如何在控制台应用程序中使用命令行参数。应用程序在运行时采用一个参数,将该参数转换为整数,并计算该数的阶乘。如果没有提供参数,则应用程序发出一条消息来解释程序的正确用法。若要根据命令提示编译并运行应用程序,请执行以下步骤:1.将以下代码粘贴到任何文本编辑器中,并将文件保存为名为Factorial.cs的文本文件。C#//AddausingdirectiveforSystemifthedirectiveisn'talreadypresent.publicclassFunctions{publicstaticlongFactorial(intn){//Testforinvalidinputif((n0)||(n20)){return-1;}//Calculatethefactorialiterativelyratherthanrecursively:longtempResult=1;for(inti=1;i=n;i++){tempResult*=i;}returntempResult;}}classMainClass{staticintMain(string[]args){//Testifinputargumentsweresupplied:if(args.Length==0){System.Console.WriteLine(Pleaseenteranumericargument.);System.Console.WriteLine(Usage:Factorialnum);return1;}//Trytoconverttheinputargumentstonumbers.Thiswillthrow//anexceptioniftheargumentisnotanumber.//num=int.Parse(args[0]);intnum;booltest=int.TryParse(args[0],outnum);if(test==false){System.Console.WriteLine(Pleaseenteranumericargument.);System.Console.WriteLine(Usage:Factorialnum);return1;}//Calculatefactorial.longresult=Functions.Factorial(num);//Printresult.if(result==-1)System.Console.WriteLine(Inputmustbe=0and=20.);elseSystem.Console.WriteLine(TheFactorialof{0}is{1}.,num,result);return0;}}//If3isenteredoncommandline,the//outputreads:Thefactorialof3is6.2.从“开始”屏幕或“开始”菜单中,打开VisualStudio“开发人员命令提示”窗口,然后导航到包含您刚创建的文件的文件夹。3.若要编译应用程序,请输入下面的命令。cscFactorial.cs如果您的应用程序中有没有编译错误,则将创建名为Factorial.exe的可执行文件。4.输入以下命令来计算3的阶乘:Factorial35.此命令将生成以下输出:Thefactorialof3is6.说明在VisualStudio中运行应用程序时,可以在“项目设计器”-“调试”页中指定命令行参数。有关如何使用命令行参数的更多示例,请参见如何:使用命令行创建和使用程序集(C#和Visual如何:显示命令行参数(C#编程指南)VisualStudio2013可以通过Main的可选参数来访问通过命令行提供给可执行文件的参数。参数以字符串数组的形式提供。数组的每个元素都包含一个参数。参数之间的空白被移除。例如,下面是对一个假想的可执行文件的命令行调用:命令行输入传递给Main的字符串数组executable.exeabcab“c”executable.exeonetwoonetwoexecutable.exeonetwothreeonetwothree说明在VisualStudio中运行应用程序时,可以在“项目设计器”-“调试”页中指定命令行参数。示例本示例显示了传递给命令行应用程序的命令行参数。显示的输出对应于上表中的第一项。C#classCommandLine{staticvoidMain(string[]args){//TheLengthpropertyprovidesthenumberofarrayelementsSystem.Console.WriteLine(parametercount={0},args.Length);for(inti=0;iargs.Length;i++){System.Console.WriteLine(Arg[{0}]=[{1}],i,args[i]);}}}/*Output(assumes3cmdlineargs):parametercount=3Arg[0]=[a]Arg[1]=[b]Arg[2]=[c]*/如何:使用foreach访问命令行参数(C#编程指南)VisualStudio2013循环访问数组的另一种方法是使用foreach语句,如下面的示例所示。foreach语句可以用于循环访问数组、.NETFramework集合类或任何实现IEnumerable接口的类或结构。说明在VisualStudio中运行应用程序时,可以在“项目设计器”-“调试”页中指定命令行参数。示例下面的示例演示如何使用foreach输出命令行参数。C#//arguments:JohnPaulMaryC#classCommandLine2{staticvoidMain(string[]args){System.Console.WriteLine(Numberofcommandlineparameters={0},args.Length);foreach(stringsinargs){System.Console.WriteLine(s);}}}/*Output:Numberofcommandlineparameters=3JohnPaulMary*/Main()返回值(C#编程指南)VisualStudio2013其他版本Main方法可以返回void:C#staticvoidMain(){//...}它还可以返回int:C#staticintMain(){//...return0;}如果不使用Main的返回值,则返回void可以稍微简化代码。但是,如果返回整数,则程序可以与调用该可执行文件的其他程序或脚本交流状态信息。下面的示例演示如何访问Main的返回值。示例此示例使用一个批处理文件来运行程序,并测试Main函数的返回值。在Windows中执行程序时,Main函数返回的任何值都将存储在名为ERRORLEVEL的环境变量中。通过检查ERRORLEVEL变量,批处理文件可以确定执行结果。通常,返回值为零指示执行成功。下面是一个简单程序示例,从Main函数返回零。零指示程序成功运行。请将该程序保存为MainReturnValTest.cs。C#//SavethisprogramasMainReturnValTest.cs.classMainReturnValTest{staticintMain(){//...return0;}}此示例使用了批处理文件,因此最好在命令提示中编译这段代码。请按照如何:设置环境变量中的说明启用命令行生成,或者使用VisualStudio命令提示(可通过“开始”菜单中的“VisualStudioTools”访问)。在命令提示符下,定位到保存程序的文件夹。下面的命令编译MainReturnValTest.cs,生成可执行文件MainReturnValTest.exe。cscMainReturnValTest.cs接下来,创建一个批处理文件,运行MainReturnValTest.exe并显示结果。将下面的代码粘贴到文本文件中,将该文件另存为test.bat,保存到包含MainReturnValTest.cs和MainReturnValTest.exe的文件夹中。在命令提示符下,键入test,运行该批处理文件。因为代码返回零,所以该批处理文件会报告成功。但是,如果将MainReturnValTest.cs更改为返回非零值,然后重新编译程序,则批处理文件的后续执行将报告失败。remtest.bat@echooffMainReturnValTest@if%ERRORLEVEL%==0gotogood:failechoExecutionFailedechoreturnvalue=%ERRORLEVEL%gotoend:goodechoExecutionsucceededechoReturnvalue=%ERRORLEVEL%gotoend:end示例输出ExecutionsucceededReturnvalue=0
本文标题:C编程指南
链接地址:https://www.777doc.com/doc-2908715 .html