簡單介紹C#方法參數
C#方法參數
因方法要處理更改數值,你多多少少要傳遞值給方法,并從方法獲得返回值。以下三個部分涉及到C#方法參數的三種參數。
◆輸入參數
◆引用參數
◆輸出參數
1.輸入參數
你早已在例子中見過的一個參數就是輸入參數。你用一個輸入參數通過值傳遞一個變量給一個方法——方法的變量被調用者傳遞進來的值的一個拷貝初始化。示范輸入參數的使用。
- 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());
- }
- }
輸入參數按C/C++程序員早已習慣的工作方式工作。如果你來自VB,請注意沒有能被編譯器處理的隱式ByVal或ByRef——如果沒有設定,參數總是用值傳遞。
這點似乎與我前面所陳述的有沖突:對于一些變量類型,用值傳遞實際上意味著用引用傳遞。迷惑嗎? 一點背景知識也不需要:COM中的東西就是接口,每一個類可以擁有一個或多個接口。一個接口只不過是一組函數指針,它不包含數據。
重復該數組會浪費很多內存資源;所以,僅開始地址被拷貝給方法,它作為調用者,仍然指向接口的相同指針。那就是為什么對象用值傳遞一個引用。
2.引用參數
盡管可以利用輸入參數和返回值建立很多方法,但你一想到要傳遞值并原地修改它(也就是在相同的內存位置),就沒有那么好運了。這里用引用參數就很方便。
因為你傳遞了一個變量給該方法(不僅僅是它的值),變量必須被初始化。否則,編譯器會報警。顯示如何用一個引用參數建立一個方法。
- // 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());
- }
- }
正如所看到的,所有你要做的就是給定義和調用都加上ref限定符。因為變量通過引用傳遞,你可以用它來計算出結果
并傳回該結果。但是,在現實的應用程序中,我強烈建議要用兩個變量,一個輸入參數和一個引用參數。
3.輸出參數
傳遞參數的第三種選擇就是把它設作一個輸出參數。正如該名字所暗示,一個輸出參數僅用于從方法傳遞回一個結果。它和引用參數的另一個區(qū)別在于:調用者不必先初始化變量才調用方法。
- 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#方法參數
【編輯推薦】