您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Msdn C#编程指南
MSDNC#编程指南C#编程指南深入C#程序HelloWorld--您的第一个程序(C#编程指南)HelloWorld--您的第一个程序(C#编程指南)VisualStudio2008其他版本更新:2007年11月以下控制台程序是传统“HelloWorld!”程序的C#版,该程序显示字符串HelloWorld!。C#//AHelloWorld!programinC#usingSystem;namespaceHelloWorld{classHello{staticvoidMain(){System.Console.WriteLine(HelloWorld!);//Keeptheconsolewindowopenindebugmode.System.Console.WriteLine(Pressanykeytoexit.);System.Console.ReadKey();}}}现在,让我们依次分析此程序的重要组成部分。注释第一行包含注释语句:C#//AHelloWorld!programinC#//字符将这行的其余内容转换为注释内容。还可通过将文本块置于/*和*/字符之间使其变成注释,例如:C#/*AHelloWorld!programinC#.ThisprogramdisplaysthestringHelloWorld!onthescreen.*/Main方法C#程序必须包含一个Main方法,用于控制程序的开始和结束。在Main方法中创建对象和执行其他方法。Main方法是驻留在类或结构内的静态方法。在前面的“HelloWorld!”示例中,此方法驻留在一个名为Hello的类中。用下列方式之一声明Main方法:该方式返回void:C#staticvoidMain(){//...}它还可以返回int:C#staticintMain(){//...return0;}由于有这两个返回类型,它可以带有参数:C#staticvoidMain(string[]args){//...}-或-C#staticintMain(string[]args){//...return0;}Main方法的参数是string数组,该数组表示用于激活程序的命令行参数。请注意,不像C++,该数组不包含可执行(exe)文件名。通过按F5在调试模式下运行时,在Main方法的末尾调用ReadKey将使得控制台窗口无法退出,从而使您无法阅读输出。有关使用命令行参数的更多信息,请参见Main()和命令行参数(C#编程指南)中的示例和如何:创建和使用C#DLL(C#编程指南)。输入和输出C#程序通常使用.NETFramework的运行库提供的输入/输出服务。语句System.Console.WriteLine(HelloWorld!);使用了WriteLine方法,该方法是运行库中的Console类的输出方法之一。它显示了标准输出流使用的字符串参数,输出流后面跟一个新行。其他Console方法用于不同的输入和输出操作。如果程序开始处包含usingSystem;指令,则无需完全限定System类和方法即可直接使用它们。例如,您可以改为调用Console.WriteLine,而不必指定System.Console.Writeline:C#usingSystem;C#Console.WriteLine(HelloWorld!);有关输入/输出方法的更多信息,请参见System.IO。编译和执行可以通过在VisualStudioIDE中创建项目或使用命令行来编译“HelloWorld!”程序。使用VisualStudio命令提示符窗口或调用vsvars32.bat将VisualC#工具集放置在命令提示符下的路径中。从命令行编译程序:使用任何文本编辑器创建源文件,并将其保存为名如Hello.cs的文件。C#源代码文件使用的扩展名是.cs。若要激活编译器,请输入命令:cscHello.cs如果程序没有包含任何编译错误,则将创建一个Hello.exe文件。若要运行程序,请输入命令:Hello有关C#编译器及其选项的更多信息,请参见C#编译器选项。请参见概念C#编程指南VisualC#示例参考深入C#程序其他资源C#参考C#程序的通用结构(C#编程指南)C#程序的通用结构(C#编程指南)VisualStudio2008其他版本更新:2007年11月C#程序可由一个或多个文件组成。每个文件都可以包含零个或零个以上的命名空间。一个命名空间除了可包含其他命名空间外,还可包含类、结构、接口、枚举、委托等类型。以下是C#程序的主干,它包含所有这些元素。C#//AskeletonofaC#programusingSystem;namespaceYourNamespace{classYourClass{}structYourStruct{}interfaceIYourInterface{}delegateintYourDelegate();enumYourEnum{}namespaceYourNestedNamespace{structYourStruct{}}classYourMainClass{staticvoidMain(string[]args){//Yourprogramstartshere...}}}相关章节更多信息:类(C#编程指南)结构(C#编程指南)命名空间(C#编程指南)接口(C#编程指南)委托(C#编程指南)C#语言规范有关更多信息,请参见C#语言规范中的以下各章节:1.2程序结构9.1编译单元(命名空间)请参见概念C#编程指南VisualC#示例参考深入C#程序其他资源C#参考Main()和命令行参数(C#编程指南)Main()和命令行参数(C#编程指南)VisualStudio2008更新:2007年11月Main方法是C#控制台应用程序或窗口应用程序的入口点。(库和服务不要求将Main方法作为入口点。)应用程序启动时,Main方法是第一个调用的方法。C#程序中只能有一个入口点。如果您有多个类都包含Main方法,则必须使用/main编译器选项编译您的程序,以指定用作入口点的Main方法。有关更多信息,请参见/main(指定Main方法的位置)(C#编译器选项)。C#classTestClass{staticvoidMain(string[]args){//Displaythenumberofcommandlinearguments:System.Console.WriteLine(args.Length);}}概述Main方法是.exe程序的入口点,程序控制流在该处开始和结束。Main在类或结构的内部声明。Main必须是静态的,且不应该是公用的。(在前面的示例中,它接受默认访问级别private。)但不要求封闭类或结构是静态的。Main的返回类型有两种:void或int。所声明的Main方法可以具有包含命令行实参的string[]形参,也可以不具有这样的形参。使用VisualStudio创建Windows窗体应用程序时,可以手动添加形参,也可以使用Environment类获取命令行实参。形参读取为从零开始编制索引的命令行实参。与C和C++不同,在C#中不将程序名称视为第一个命令行实参。本节内容命令行参数(C#编程指南)如何:显示命令行参数(C#编程指南)如何:使用foreach访问命令行参数(C#编程指南)Main()返回值(C#编程指南)C#语言规范有关更多信息,请参见C#语言规范中的以下各章节:1.1HelloWorld请参见概念C#编程指南VisualC#示例参考深入C#程序命令行参数(C#编程指南)命令行参数(C#编程指南)VisualStudio2008更新:2007年11月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。示例下面的示例演示如何在控制台应用程序中使用命令行参数。程序在运行时采用一个参数,将该参数转换为整数,并计算该数的阶乘。如果没有提供参数,则程序发出一条消息来解释程序的正确用法。说明:在VisualStudio中运行应用程序时,可以在“项目设计器”-“调试”页中指定命令行参数。有关如何使用命令行参数的更多示例,请参见如何:创建和使用C#DLL(C#编程指南)。C#publicclassFunctions{publicstaticlongFactorial(intn){//Testforinvalidinputif((n=0)||(n256)){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(Inputmustbe0and256.);elseSystem.Console.WriteLine(TheFactorialof{0}is{1}.,num,result
本文标题:Msdn C#编程指南
链接地址:https://www.777doc.com/doc-3552965 .html