【蓝鸥AR/VR开发基础二】方法参数

蓝鸥(www.lanou3g.com)是一家集产、学、研、创为一体的综合性移动互联网研发培训机构,致力于iOS开发、Unity3D游戏开发、Android开发、HTML5前端开发和Web安全攻防等技术人才的培养。

一、方法参数

定义方法时,在参数列表中定义的参数叫做形参;调用方法时,在参数列表中传递的参数叫做实参;

【蓝鸥AR/VR开发基础二】方法参数_第1张图片

二、方法参数代码解说一:输出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

【蓝鸥AR/VR开发基础二】方法参数_第2张图片

方法参数代码解说五: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修饰符

【蓝鸥AR/VR开发基础二】方法参数_第3张图片

只有一个返回值的代码实例:

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);

}

}

}

【蓝鸥AR/VR开发基础二】方法参数_第4张图片

练习:实现一个方法,能够交换参数的值,能将传递进去的三个参数按照由小到大的顺序进行排序,使用ref实现!

你可能感兴趣的:(【蓝鸥AR/VR开发基础二】方法参数)