蓝鸥(www.lanou3g.com)是一家集产、学、研、创为一体的综合性移动互联网研发培训机构,致力于iOS开发、Unity3D游戏开发、Android开发、HTML5前端开发和Web安全攻防等技术人才的培养。
一、方法参数
定义方法时,在参数列表中定义的参数叫做形参;调用方法时,在参数列表中传递的参数叫做实参;
二、方法参数代码解说一:输出a+b的和
usingSystem;
namespaceLesson_09
{
publicclassMyClass{
publicintSum(inta,intb){
returna+b;
}
}
classMainClass
{
publicstaticvoidMain(string[]args)
{
MyClassc=newMyClass();
Console.WriteLine(c.Sum(5,12));
}
}
}
三、方法参数代码解说二:形参和实参的举例说明
usingSystem;
namespaceLesson_09
{
publicclassMyClass{
//定义方法时,参数a和b是形式参数——形参
publicintSum(inta,intb){
inta=5;
intb=12;
returna+b;
}
}
classMainClass
{
publicstaticvoidMain(string[]args)
{
MyClassc=newMyClass();
//调用方法时,传入的参数5和12是实际参数——实参
inti=c.Sum(5,12);
}
}
}
四、方法参数代码解说三,如何把a和b的值进行互换?采用值类型是否可行?请记住值类型系统会自动分配空间
usingSystem;
namespaceLesson_09
{
publicclassMyClass{
publicvoidSwap(inta,intb){
inttemp=a;
a=b;
b=temp;
}
}
classMainClass
{
publicstaticvoidMain(string[]args)
{
MyClassc=newMyClass();
inti=5;
intj=12;
c.Swap(i,j);
Console.WriteLine("I="+i);
Console.WriteLine("J="+j);
}
}
}
五、方法参数代码解说四:如果想在方法内对参数进行修改来影响外部的值,那么可以使用引用类型的参数
namespaceLesson_09
{
publicclassMyClass{
publicvoidSwap(inta,intb){
inttemp=a;
a=b;
b=temp;
}
publicvoidA(int[]arr){
arr[0]=12;
}
}
classMainClass
{
publicstaticvoidMain(string[]args)
{
MyClassc=newMyClass();
int[]a=newint[]{1};
c.A(a);
Console.WriteLine(a[0]);
}
}
}
六、引用参数
值类型参数想要达到引用类型参数的效果,需要用到引用修饰符ref
方法参数代码解说五:ref关键字使用
usingSystem;
namespaceLesson_09
{
publicclassMyClass{
publicvoidSwap(refinta,refintb){
inttemp=a;
a=b;
b=temp;
}
//如果想在方法内对参数进行修改来影响外部的值,那么可以使用引用类型的参数
//publicvoidA(int[]arr){
//arr[0]=12;
//}
}
classMainClass
{
publicstaticvoidMain(string[]args)
{
MyClassc=newMyClass();
//int[]a=newint[]{1};
//c.A(a);
//Console.WriteLine(a[0]);
inti=5;
intj=12;
c.Swap(refi,refj);
Console.WriteLine("i="+i);
Console.WriteLine("j="+j);
}
}
}
七、输出参数
输出参数:如果想让一个方法返回多个值,可以用输出参数来处理,在参数钱加一个out修饰符
只有一个返回值的代码实例:
usingSystem;
namespaceLesson_09
{
publicclassMyClass{
publicintMax(inta,intb,intc){
intmax=a;
if(max
max=b;
}
if(max
max=c;
}
returnmax;
}
}
classMainClass
{
publicstaticvoidMain(string[]args)
{
MyClassc=newMyClass();
inti=3;
intj=-4;
intk=14;
Console.WriteLine(c.Max(i,j,k));
}
}
}
对比输出最小值:使用out修饰符
usingSystem;
namespaceLesson_09
{
publicclassMyClass{
//使用out修饰符来定义输出参数
publicintMax(inta,intb,intc,outintmin){
//初始化输出参数
min=0;
intm=a;
if(m>b){
m=b;
}
if(m>c){
m=c;
}
min=m;
intmax=a;
if(max
max=b;
}
if(max
max=c;
}
returnmax;
}
}
classMainClass
{
publicstaticvoidMain(string[]args)
{
MyClassc=newMyClass();
inti=3;
intj=-4;
intk=14;
intmin=0;
intmax=c.Max(i,j,k,outmin);
Console.WriteLine("Min="+min);
}
}
}
八、可变参数
可变参数:如果在定义方法时不能确实有多少个参数,我们可以使用可变参数params
usingSystem;
namespaceLesson_09
{
publicclassMyClass{
//定义方法时不能确定调用时会传递多少个参数,我们可以使用可变参数
publicintSum(paramsint[]para){
ints=0;
foreach(intiinpara){
s+=i;
}
returns;
}
}
classMainClass
{
publicstaticvoidMain(string[]args)
{
MyClassc=newMyClass();
ints=0;
s=c.Sum(1,2,3,5);
Console.WriteLine(s);
}
}
}
练习:实现一个方法,能够交换参数的值,能将传递进去的三个参数按照由小到大的顺序进行排序,使用ref实现!