藍(lán)鷗(www.lanou3g.com)是一家集產(chǎn)翠拣、學(xué)版仔、研、創(chuàng)為一體的綜合性移動互聯(lián)網(wǎng)研發(fā)培訓(xùn)機(jī)構(gòu)误墓,致力于iOS開發(fā)蛮粮、Unity3D游戲開發(fā)、Android開發(fā)谜慌、HTML5前端開發(fā)和Web安全攻防等技術(shù)人才的培養(yǎng)然想。
一、方法參數(shù)
定義方法時欣范,在參數(shù)列表中定義的參數(shù)叫做形參变泄;調(diào)用方法時令哟,在參數(shù)列表中傳遞的參數(shù)叫做實(shí)參;
二妨蛹、方法參數(shù)代碼解說一:輸出a+b的和
usingSystem;
namespaceLesson_09
{
publicclassMyClass{
publicintSum(inta,intb){
returna+b;
}
}
classMainClass
{
publicstaticvoidMain(string[]args)
{
MyClassc=newMyClass();
Console.WriteLine(c.Sum(5,12));
}
}
}
三屏富、方法參數(shù)代碼解說二:形參和實(shí)參的舉例說明
usingSystem;
namespaceLesson_09
{
publicclassMyClass{
//定義方法時,參數(shù)a和b是形式參數(shù)——形參
publicintSum(inta,intb){
inta=5;
intb=12;
returna+b;
}
}
classMainClass
{
publicstaticvoidMain(string[]args)
{
MyClassc=newMyClass();
//調(diào)用方法時蛙卤,傳入的參數(shù)5和12是實(shí)際參數(shù)——實(shí)參
inti=c.Sum(5,12);
}
}
}
四狠半、方法參數(shù)代碼解說三,如何把a(bǔ)和b的值進(jìn)行互換颤难?采用值類型是否可行神年?請記住值類型系統(tǒng)會自動分配空間
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);
}
}
}
五、方法參數(shù)代碼解說四:如果想在方法內(nèi)對參數(shù)進(jìn)行修改來影響外部的值行嗤,那么可以使用引用類型的參數(shù)
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]);
}
}
}
六已日、引用參數(shù)
值類型參數(shù)想要達(dá)到引用類型參數(shù)的效果,需要用到引用修飾符ref
方法參數(shù)代碼解說五:ref關(guān)鍵字使用
usingSystem;
namespaceLesson_09
{
publicclassMyClass{
publicvoidSwap(refinta,refintb){
inttemp=a;
a=b;
b=temp;
}
//如果想在方法內(nèi)對參數(shù)進(jìn)行修改來影響外部的值栅屏,那么可以使用引用類型的參數(shù)
//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);
}
}
}
七飘千、輸出參數(shù)
輸出參數(shù):如果想讓一個方法返回多個值,可以用輸出參數(shù)來處理栈雳,在參數(shù)錢加一個out修飾符
只有一個返回值的代碼實(shí)例:
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修飾符來定義輸出參數(shù)
publicintMax(inta,intb,intc,outintmin){
//初始化輸出參數(shù)
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);
}
}
}
八占婉、可變參數(shù)
可變參數(shù):如果在定義方法時不能確實(shí)有多少個參數(shù),我們可以使用可變參數(shù)params
usingSystem;
namespaceLesson_09
{
publicclassMyClass{
//定義方法時不能確定調(diào)用時會傳遞多少個參數(shù)甫恩,我們可以使用可變參數(shù)
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);
}
}
}
練習(xí):實(shí)現(xiàn)一個方法,能夠交換參數(shù)的值酌予,能將傳遞進(jìn)去的三個參數(shù)按照由小到大的順序進(jìn)行排序磺箕,使用ref實(shí)現(xiàn)!