c# ref和out参数
向方法傳遞參的時(shí)候,對(duì)應(yīng)的參數(shù)通常會(huì)用實(shí)參的拷貝來(lái)初始化。就是說(shuō)隨便在方法內(nèi)部進(jìn)行怎樣的修改,都不會(huì)影響作為參數(shù)傳遞的變量的原始值。
通過(guò)上面的例子我們可以看出來(lái),如果一個(gè)方法的參數(shù)是引用類(lèi)型,那么使用哪個(gè)參數(shù)來(lái)進(jìn)行任何修改都會(huì)改變傳入的參數(shù)所引用的數(shù)據(jù),關(guān)鍵在于雖然引用的數(shù)據(jù)發(fā)生了變化,但是傳入的參數(shù)是沒(méi)有變的。雖然可以通過(guò)參數(shù)來(lái)修改實(shí)參引用的對(duì)象,但是不可以修改實(shí)參的本身。但是在一些情況下,我們希望方法能夠?qū)嶋H的修改一個(gè)參數(shù),所以c#給我們提供了ref和out關(guān)鍵字。
使用ref參數(shù),作用參數(shù)的所有操作都會(huì)作用于原始實(shí)參,應(yīng)為參數(shù)和實(shí)參引用同一個(gè)對(duì)象。通過(guò)下面的例子我們可以看出通過(guò)使用ref關(guān)鍵字使得傳入的參數(shù)發(fā)生了改變,就相當(dāng)于我們把上一個(gè)方法運(yùn)算的結(jié)果返回了回來(lái)。下面的parm++相當(dāng)于reg++
out關(guān)鍵字的語(yǔ)法和ref關(guān)鍵字相似,可以為參數(shù)附加out前綴,使得參數(shù)成為實(shí)參的別名,但是時(shí)可以不需要初始化的,ref關(guān)鍵字是需要先初始化傳入的參數(shù),才能夠使用。
?
轉(zhuǎn)載于:https://www.cnblogs.com/hjxzjp/p/7892658.html
總結(jié)
以上是生活随笔為你收集整理的c# ref和out参数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: day27 CRM delete act
- 下一篇: C#代理多样性