免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
C#形參,實參,值傳遞參數(shù),引用傳遞參數(shù),輸出參數(shù),參數(shù)數(shù)組的學(xué)習(xí)(一)

1)形參

形參顧名思義就是形式上的參數(shù),不是實際的參數(shù),它代替實際傳入方法的值。在方法體代碼中代表了值本身參與運算。形參定義于參數(shù)中,它不同于方法體內(nèi)局部變量,因為是一個變量,在它的作用域內(nèi)不允許存在一個同名的局部變量,不管他們的類型是否相同,都是不允許出現(xiàn)同名的。

看下面的代碼示例:

1 //這其中的strName就是一個形參也是一個變量,不允許出現(xiàn)同名的局部變量2         public void SayHelloTo(string strName)3         {4             Console.WriteLine("我的名字是{0}", strName);5         }

形參的特點:

①形參是一個變量,它具有變量的全部特點。②方法的形參可以有多個,形參直接使用逗號進(jìn)行隔開,即使類型相同的多個參數(shù)也不可以合并聲明。

2)實參

實參是相對于形參而言的,形參是實際值的“替身”,這個替身所代表的實際值即為實參。實際值可以是一個具體的值,也可以是一個變量

看下面的代碼示例:

 1 static void Main(string[] args) 2         { 3             Program pro = new Program(); 4             int nNum = 10; 5             //當(dāng)調(diào)用Add方法時,傳進(jìn)去兩個參數(shù),第一個是實際的值, 6             //第二個nNum是變量,但是在傳入方法時已經(jīng)初始化 7             int nResult = pro.Add(20, nNum); 8         } 9 10         //這里的a,b即為所謂的形參11         public int Add(int a, int b)12         {13             return a + b;14         }

①實參用于初始化形參的實際值或者表達(dá)式②實參位于要調(diào)用的方法參數(shù)列表中。

3)按值傳遞參數(shù)

值參數(shù)是通過將實參的值復(fù)制到形參。來實現(xiàn)將值傳遞到方法,也就是所謂的按值傳遞,當(dāng)方法被調(diào)用是,CLR做如下操作:

①在托管棧堆中為形參分配空間 ②將實參的值復(fù)制到形參

其中,在值參數(shù)中,實參也可以是任何計算結(jié)果滿足類型要求的表達(dá)式,不一定是變量。

看下面的代碼示例:

 1 static void Main(string[] args) 2         { 3             Program pro = new Program(); 4             //int nNum = 10; 5             //當(dāng)調(diào)用Add方法時,傳進(jìn)去兩個參數(shù),第一個是實際的值, 6             //第二個nNum是變量,但是在傳入方法時已經(jīng)初始化 7             //int nResult = pro.Add(20, nNum); 8             int i = 10; 9             int w = 20;10         //在這里i * 2和(w+10)/10充當(dāng)了實參的角色11             int nResult = pro.Add(i * 2, (w + 10) / 10);12             Console.WriteLine(nResult);13         }14 15         //這里的a,b即為所謂的形參16         public int Add(int a, int b)17         {18             return a + b;19         }

下面看一段代碼,分別觀察形參,實參在托管堆和托管棧中的分配和使用情況

 1 class Program 2     { 3         static void Main(string[] args) 4         { 5             Program pro = new Program(); 6             Rectangle rectange = new Rectangle(); 7             int myValue = 10; 8  9             //這里的rectange,myValue是實參10             pro.CalculateArea(rectange, myValue);//調(diào)用方法11         }12 13         //這里的(Rectangle rect,int value)是形參14         public void CalculateArea(Rectangle rect,int value)15         {16             rect.Length += 10;17             rect.width += 15;18             rect.Area = rect.Length * rect.width;19             value++;20         }21     }22 23     //一個矩形類24     public class Rectangle25     {26         public int Length = 10;27         public int width = 15;28         public int Area;29     }

①在方法被調(diào)用前:系統(tǒng)在棧中為Rectangle類的實例rectange和值類型myValue分配空間,其中引用類型rectange指向堆中的Rectangle對象實例,myValue是值類型,因此其值位于托管棧中。演示圖如下

②方法調(diào)用開始時:實參將值復(fù)制到CalculateArea的形參,其中rectange為引用類型,因為復(fù)制一個新的引用——rect,此刻這兩個引用都指向同一個對象,myValue是值類型,因此可以直接復(fù)制其值——value。演示圖如下:

③方法調(diào)用過程中,改變引用所指向?qū)ο蟮膌ength字段和width字段,以及value值自增1

 

④方法調(diào)用以后,形參rect和value被從棧中彈出。myValue是值類型,他的值并沒有改變(改變的是形參value);rectange是引用類型,對它所作的修改實際是對托管堆中的對象做的修改,其值未修改后的值。

 

要明白值傳遞參數(shù),主要明白值類型和引用類型在托管棧和托管堆中的作用狀態(tài)。這樣理解起來就非常的容易。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
java的各類型數(shù)據(jù)在內(nèi)存中分配情況詳解_
C語言windows.h庫的常用函數(shù)(三)
C# 繪制圓角矩形 | CAD工具之家
flash動畫制作實例:打造粒子煙花效果
C++拷貝構(gòu)造函數(shù)詳解(轉(zhuǎn))
七、使用GDI 畫扇形
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服