欢迎来到天天文库
浏览记录
ID:56275842
大小:55.00 KB
页数:6页
时间:2020-06-05
《补充资料方法C#编程指南.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、方法(C#编程指南)更新:2007年11月“方法”是包含一系列语句的代码块。程序通过“调用”方法并指定所需的任何方法参数来执行语句。在C#中,每个执行指令都是在方法的上下文中执行的。Main方法是每个C#应用程序的入口点,在启动程序时由公共语言运行时(CLR)调用。说明:本主题讨论命名方法。有关匿名函数的更多信息,请参见匿名函数(C#编程指南)。 方法签名通过指定方法的访问级别(例如public或private)、可选修饰符(例如abstract或sealed)、返回值、名称和任何方法参数,可以在类或结构中声明方法。这些部分统称为方法的“签名”。说明:为进
2、行方法重载,方法的返回类型不是方法签名的一部分。但是,在确定委托和委托所指向方法之间的兼容性时,返回类型是方法签名的一部分。方法参数括在括号中,并用逗号隔开。空括号表示方法不需要参数。下面的类包含三个方法:C#abstractclassMotorcycle{//Anyonecancallthis.publicvoidStartEngine(){/*Methodstatementshere*/}//Onlyderivedclassescancallthis.protectedvoidAddGas(intgallons){/*Methodstatementsh
3、ere*/}//Derivedclassescanoverridethebaseclassimplementation.publicvirtualintDrive(intmiles,intspeed){/*Methodstatementshere*/return1;}//Derivedclassesmustimplementthis.publicabstractdoubleGetTopSpeed();} 方法访问在对象上调用方法类似于访问字段。在对象名称之后,依次添加句点、方法名称和括号。参数在括号内列出,并用逗号隔开。因此,可以按以下示例中的方式调用Mo
4、torcycle类的方法:C#classTestMotorcycle:Motorcycle{publicoverridedoubleGetTopSpeed(){return108.4;}staticvoidMain(){TestMotorcyclemoto=newTestMotorcycle();moto.StartEngine();moto.AddGas(15);moto.Drive(5,20);doublespeed=moto.GetTopSpeed();Console.WriteLine("Mytopspeedis{0}",speed);}} 方法形
5、参和实参方法定义指定所需任何“形参”的名称和类型。调用代码在调用方法时,将为每个形参提供称为“实参”的具体值。实参必须与形参类型兼容,但调用代码中使用的实参名称(如果有)不必与方法中定义的形参名称相同。例如:C#publicvoidCaller(){intnumA=4;//Callwithanintvariable.intproductA=Square(numA);intnumB=32;//Callwithanotherintvariable.intproductB=Square(numB);//Callwithanintegerliteral.intpr
6、oductC=Square(12);//Callwithanexpressionthatevaulatestoint.productC=Square(productA*3);}intSquare(inti){//Storeinputargumentinalocalvariable.intinput=i;returninput*input;} 通过引用传递与通过值传递默认情况下,将值类型传递给方法时,传递的是副本而不是对象本身。因此,对参数所做的更改对于调用方法中的原始副本没有影响。可以使用ref关键字通过引用传递值类型。有关更多信息,请参见传递值类型参数(
7、C#编程指南)。有关内置值类型的列表,请参见值类型表(C#参考)。“引用类型”通过引用进行传递。将引用类型的对象传递给方法时,引用指向原始对象而不是副本。因此,通过此引用所进行的更改将反映在调用方法中。引用类型是通过使用class关键字创建的,如下面的示例中所示:C#publicclassSampleRefType{publicintvalue;}现在,如果将基于此类型的对象传递给方法,则会通过引用传递该对象。例如:C#publicstaticvoidTestRefType(){SampleRefTypert=newSampleRefType();rt.v
8、alue=44;ModifyObject(rt);Console.
此文档下载收益归作者所有