您好,登錄后才能下訂單哦!
小編給大家分享一下C#中方法參數(shù)怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
C#方法參數(shù)
因方法要處理更改數(shù)值,你多多少少要傳遞值給方法,并從方法獲得返回值。以下三個部分涉及到C#方法參數(shù)的三種參數(shù)。
◆輸入?yún)?shù)
◆引用參數(shù)
◆輸出參數(shù)
1.輸入?yún)?shù)
你早已在例子中見過的一個參數(shù)就是輸入?yún)?shù)。你用一個輸入?yún)?shù)通過值傳遞一個變量給一個方法——方法的變量被調(diào)用者傳遞進來的值的一個拷貝初始化。示范輸入?yún)?shù)的使用。
using System; public class SquareSample { public int CalcSquare(int nSideLength) { return nSideLength*nSideLength; } } class SquareApp { public static void Main() { SquareSample sq = new SquareSample(); Console.WriteLine(sq.CalcSquare(25)。ToString()); } }
輸入?yún)?shù)按C/C++程序員早已習(xí)慣的工作方式工作。如果你來自VB,請注意沒有能被編譯器處理的隱式ByVal或ByRef——如果沒有設(shè)定,參數(shù)總是用值傳遞。
這點似乎與我前面所陳述的有沖突:對于一些變量類型,用值傳遞實際上意味著用引用傳遞。迷惑嗎? 一點背景知識也不需要:COM中的東西就是接口,每一個類可以擁有一個或多個接口。一個接口只不過是一組函數(shù)指針,它不包含數(shù)據(jù)。
重復(fù)該數(shù)組會浪費很多內(nèi)存資源;所以,僅開始地址被拷貝給方法,它作為調(diào)用者,仍然指向接口的相同指針。那就是為什么對象用值傳遞一個引用。
2.引用參數(shù)
盡管可以利用輸入?yún)?shù)和返回值建立很多方法,但你一想到要傳遞值并原地修改它(也就是在相同的內(nèi)存位置),就沒有那么好運了。這里用引用參數(shù)就很方便。
因為你傳遞了一個變量給該方法(不僅僅是它的值),變量必須被初始化。否則,編譯器會報警。顯示如何用一個引用參數(shù)建立一個方法。
// class SquareSample using System; public class SquareSample { public void CalcSquare(ref int nOne4All) { nOne4All *= nOne4All; } } class SquareApp { public static void Main() { SquareSample sq = new SquareSample(); int nSquaredRef = 20; // 一定要初始化 sq.CalcSquare(ref nSquaredRef); Console.WriteLine(nSquaredRef.ToString()); } }
正如所看到的,所有你要做的就是給定義和調(diào)用都加上ref限定符。因為變量通過引用傳遞,你可以用它來計算出結(jié)果
并傳回該結(jié)果。但是,在現(xiàn)實的應(yīng)用程序中,我強烈建議要用兩個變量,一個輸入?yún)?shù)和一個引用參數(shù)。
3.輸出參數(shù)
傳遞參數(shù)的第三種選擇就是把它設(shè)作一個輸出參數(shù)。正如該名字所暗示,一個輸出參數(shù)僅用于從方法傳遞回一個結(jié)果。它和引用參數(shù)的另一個區(qū)別在于:調(diào)用者不必先初始化變量才調(diào)用方法。
using System; public class SquareSample { public void CalcSquare(int nSideLength, out int nSquared) { nSquared = nSideLength * nSideLength; } } class SquareApp { public static void Main() { SquareSample sq = new SquareSample(); int nSquared; // 不必初始化 sq.CalcSquare(15, out nSquared); Console.WriteLine(nSquared.ToString()); } }
以上是“C#中方法參數(shù)怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。