您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Net面向对象程序设计-11-理解参数数组-2010-2011-2
1孙月江syjsdut@163.com1第11章理解参数数组本章内容使用Params关键字接受任意数量的参数使用Params关键字和object类型,接受任意类型、任意数量的参数比较获取参数数组的方法和获取可选参数的方法重载是指在相同的作用域内,声明两个或多个同名的方法如果需要对不同类型的参数执行相同的操作,重载非常有用示例:classConsole{publicstaticvoidWriteLine(intparameter)...publicstaticvoidWriteLine(doubleparameter)...publicstaticvoidWriteLine(decimalparameter)...}假如发生变化的不是参数类型,而是参数的数量,重载就有些力不从心了例如:Sum方法publicstaticintSum(inta,intb){intsumTotal;sumTotal=a+b;returnsumTotal;}多参数publicstaticintSumThree(inta,intb,intc)publicstaticintSumFour(inta,intb,intc,intd)publicstaticintSumTen(inta,intb,intc,intd,inte,intf,intg,inth,inti,intj)数组在方法中的使用数组元素作为方法中的参数privatestaticdecimalMaxAmount(decimala,decimalb)decimal[]person1Sales={40000,10000,25000,50000,33000,60000};decimal[]person2Sales={80000,3000,110000,40000,33000,59000};...MaxArray(person1Sales[0],person2Sales[0]...01:usingSystem;02:03:classMaxSales04:{05:publicstaticvoidMain()06:{07:decimal[]person1Sales={40000,10000,25000,50000,33000,60000};08:decimal[]person2Sales={80000,3000,110000,40000,33000,59000};09:10:Console.WriteLine(Maxindividualsalesforeachofthefirstsixmonths:);11:for(inti=0;i6;i++)12:{13:Console.WriteLine(Month{0}:{1,11:C},14:i+1,MaxAmount(person1Sales[i],person2Sales[i]));15:}16:}17:18:privatestaticdecimalMaxAmount(decimala,decimalb)19:{20:if(ab)21:returna;22:else23:returnb;24:}25:}Maxindividualsalesforeachofthefirstsixmonths:Month1:$80,000.00Month2:$10,000.00Month3:$110,000.00Month4:$50,000.00Month5:$33,000.00Month6:$60,000.00数组引用作为方法参数要指定一个方法接受数组对象引用类型的参数,需要在方法头中包含适当的形式参数。publicstaticintSum(uint[]numbers)提供给方法调用的数组变量参数并不包含任何方括号03:classAverageAgeCalculator04:{05:publicstaticvoidMain()06:{07:byte[]agesScoutCamp=newbyte[4];08:byte[]agesSpaceShuttle=newbyte[6];10:Console.WriteLine(Enteragesfor{0}scouts:,agesScoutCamp.Length);11:for(inti=0;iagesScoutCamp.Length;i++)12:{13:Console.Write(Enterageforscoutnumber{0}:,i+1);14:agesScoutCamp[i]=Convert.ToByte(Console.ReadLine());15:}16:Console.WriteLine(Averageageofscouts:+AverageAge(agesScoutCamp));17:18:Console.WriteLine(\nEnteragesfor{0}astronauts,agesSpaceShuttle.Length);19:for(inti=0;iagesSpaceShuttle.Length;i++)20:{21:Console.Write(Enterageforastronautnumber{0}:,i+1);22:agesSpaceShuttle[i]=Convert.ToByte(Console.ReadLine());23:}24:Console.WriteLine(Averageageofastronauts:+AverageAge(agesSpaceShuttle));25:}27:publicstaticbyteAverageAge(byte[]ages)28:{29:intageSum=0;30://ThesumofallagesisassignedtoageSum31:for(inti=0;iages.Length;i++)32:ageSum+=ages[i];33://Calculatetheaverageageandreturnitbacktothecaller34:return(byte)(ageSum/ages.Length);35:}36:}Enteragesfor4scouts:Enterageforscoutnumber1:10enterEnterageforscoutnumber2:9enterEnterageforscoutnumber3:8enterEnterageforscoutnumber4:9enterAverageageofscouts:9Enteragesfor6astronautsEnterageforastronautnumber1:34enterEnterageforastronautnumber2:38enterEnterageforastronautnumber3:30enterEnterageforastronautnumber4:35enterEnterageforastronautnumber5:33enterEnterageforastronautnumber6:34enterAverageageofastronauts:34使用数组作为方法的返回值01:usingSystem;02:03:classReturnMaxSalesArray04:{05:publicstaticvoidMain()06:{07:decimal[]person1Sales={40000,10000,25000,50000,33000,60000};08:decimal[]person2Sales={80000,3000,110000,40000,33000,59000};09:decimal[]maxSales;10:11:maxSales=MaxArray(person1Sales,person2Sales);12:Console.WriteLine(Maxindividualsalesforeachofthefirstsixmonths:);13:for(inti=0;i6;i++)14:{15:Console.WriteLine(Maxsalesmonth{0}:{1,12:C},(i+1),maxSales[i]);16:}17:}19:privatestaticdecimal[]MaxArray(decimal[]sales1,decimal[]sales2)20:{21:decimal[]maxSales=newdecimal[sales1.Length];22:23:for(inti=0;imaxSales.Length;i++)24:{25:maxSales[i]=MaxAmount(sales1[i],sales2[i]);26:}27:returnmaxSales;28:}29:30:privatestaticdecimalMaxAmount(decimala,decimalb)31:{32:if(ab)33:returna;34:else35:returnb;36:}37:}11.1使用数组参数示例:写一个方法判断作为参数传递的一组值中的最小值classUtil{publicstaticintMin(int[]paramList){if(paramList==null||paramList.Length==0){thrownewArgumentException(Util.Min:notenougharguments);}intcurrentMin=paramList[0];foreach(intiinparamList){if(icurrentMin){currentMin=i;}}returncurrentMin;}}为了使用Min方法来判断2个int值的最小值,需要如下修改int[]array=newint[2];array[0]=first;array[1]=second;intmin=Util.Min(array);为了使用Min方法来判断2个int值的最小值,需要如下修改int[]array=newint[3];array[0]=first;array[1]=second;array[2]=third;intmin=Util.Min(array);缺点:必须编写额外的代码填充传入的数组11.1.1声明params数组classUtil{publicstaticintMin(paramsint[]paramList){//codeexactlyasbefore}}Params关键字对Min的作用是:调用该方法时,可以传递任意数量的整数参数intmin=Util.Min(first,second);自动转换成:int[]array=newint[2];array[0]=first;array[1]=second;intmin=Util.Min(array);01:usingSystem;03:classSumCalculator04:{05:publicstaticvoidMain()06:{07:intresult1,result2,result3,result4,result5;08:int[]myNumbers={4,10,6,8,2};10:result1=Sum(3,5);11:result2=Sum(10,20,30);12:result3=Sum(1,2,3,4,5,6,7,8,9,10);13:result4=Sum(myNumbers);14:result5=Sum();16:Console.WriteLine(\nEndresults:{0},{1},{2},{3},{4},17:result1,result2,result3,result4,result5);18:}20:publicstaticintSum(paramsint[]numbers)21
本文标题:Net面向对象程序设计-11-理解参数数组-2010-2011-2
链接地址:https://www.777doc.com/doc-3401881 .html