新聞中心
C#方法參數(shù)

成都創(chuàng)新互聯(lián)公司自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設計、網(wǎng)站制作、成都網(wǎng)站設計、電子商務、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務。公司擁有豐富的網(wǎng)站建設和互聯(lián)網(wǎng)應用系統(tǒng)開發(fā)管理經(jīng)驗、成熟的應用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團隊及專業(yè)的網(wǎng)站設計師團隊。
因方法要處理更改數(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++程序員早已習慣的工作方式工作。如果你來自VB,請注意沒有能被編譯器處理的隱式ByVal或ByRef——如果沒有設定,參數(shù)總是用值傳遞。
這點似乎與我前面所陳述的有沖突:對于一些變量類型,用值傳遞實際上意味著用引用傳遞。迷惑嗎? 一點背景知識也不需要:COM中的東西就是接口,每一個類可以擁有一個或多個接口。一個接口只不過是一組函數(shù)指針,它不包含數(shù)據(jù)。
重復該數(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ún)?shù)和一個引用參數(shù)。
3.輸出參數(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ù)
新聞標題:簡單介紹C#方法參數(shù)
當前地址:http://www.5511xx.com/article/coehgoh.html


咨詢
建站咨詢
