自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡(jiǎn)單介紹C#方法參數(shù)

開(kāi)發(fā) 后端
這里簡(jiǎn)單介紹C#方法參數(shù),一個(gè)輸出參數(shù)僅用于從方法傳遞回一個(gè)結(jié)果。它和引用參數(shù)的另一個(gè)區(qū)別在于:調(diào)用者不必先初始化變量才調(diào)用方法。

C#方法參數(shù)

因方法要處理更改數(shù)值,你多多少少要傳遞值給方法,并從方法獲得返回值。以下三個(gè)部分涉及到C#方法參數(shù)的三種參數(shù)。
◆輸入?yún)?shù)
◆引用參數(shù)
◆輸出參數(shù)

1.輸入?yún)?shù)

你早已在例子中見(jiàn)過(guò)的一個(gè)參數(shù)就是輸入?yún)?shù)。你用一個(gè)輸入?yún)?shù)通過(guò)值傳遞一個(gè)變量給一個(gè)方法——方法的變量被調(diào)用者傳遞進(jìn)來(lái)的值的一個(gè)拷貝初始化。示范輸入?yún)?shù)的使用。

  1. using System;  
  2. public class SquareSample  
  3. {  
  4. public int CalcSquare(int nSideLength)  
  5. {  
  6. return nSideLength*nSideLength;  
  7. }  
  8. }  
  9. class SquareApp  
  10. {  
  11. public static void Main()  
  12. {  
  13. SquareSample sq = new SquareSample();  
  14. Console.WriteLine(sq.CalcSquare(25)。ToString());  
  15. }  

輸入?yún)?shù)按C/C++程序員早已習(xí)慣的工作方式工作。如果你來(lái)自VB,請(qǐng)注意沒(méi)有能被編譯器處理的隱式ByVal或ByRef——如果沒(méi)有設(shè)定,參數(shù)總是用值傳遞。

這點(diǎn)似乎與我前面所陳述的有沖突:對(duì)于一些變量類型,用值傳遞實(shí)際上意味著用引用傳遞。迷惑嗎? 一點(diǎn)背景知識(shí)也不需要:COM中的東西就是接口,每一個(gè)類可以擁有一個(gè)或多個(gè)接口。一個(gè)接口只不過(guò)是一組函數(shù)指針,它不包含數(shù)據(jù)。

重復(fù)該數(shù)組會(huì)浪費(fèi)很多內(nèi)存資源;所以,僅開(kāi)始地址被拷貝給方法,它作為調(diào)用者,仍然指向接口的相同指針。那就是為什么對(duì)象用值傳遞一個(gè)引用。

2.引用參數(shù)

盡管可以利用輸入?yún)?shù)和返回值建立很多方法,但你一想到要傳遞值并原地修改它(也就是在相同的內(nèi)存位置),就沒(méi)有那么好運(yùn)了。這里用引用參數(shù)就很方便。

因?yàn)槟銈鬟f了一個(gè)變量給該方法(不僅僅是它的值),變量必須被初始化。否則,編譯器會(huì)報(bào)警。顯示如何用一個(gè)引用參數(shù)建立一個(gè)方法。

  1. // class SquareSample  
  2. using System;  
  3. public class SquareSample  
  4. {  
  5. public void CalcSquare(ref int nOne4All)  
  6. {  
  7. nOne4All *= nOne4All;  
  8. }  
  9. }  
  10. class SquareApp  
  11. {  
  12. public static void Main()  
  13. {  
  14. SquareSample sq = new SquareSample();  
  15. int nSquaredRef = 20; // 一定要初始化  
  16. sq.CalcSquare(ref nSquaredRef);  
  17. Console.WriteLine(nSquaredRef.ToString());  
  18. }  

正如所看到的,所有你要做的就是給定義和調(diào)用都加上ref限定符。因?yàn)樽兞客ㄟ^(guò)引用傳遞,你可以用它來(lái)計(jì)算出結(jié)果

并傳回該結(jié)果。但是,在現(xiàn)實(shí)的應(yīng)用程序中,我強(qiáng)烈建議要用兩個(gè)變量,一個(gè)輸入?yún)?shù)和一個(gè)引用參數(shù)。

3.輸出參數(shù)

傳遞參數(shù)的第三種選擇就是把它設(shè)作一個(gè)輸出參數(shù)。正如該名字所暗示,一個(gè)輸出參數(shù)僅用于從方法傳遞回一個(gè)結(jié)果。它和引用參數(shù)的另一個(gè)區(qū)別在于:調(diào)用者不必先初始化變量才調(diào)用方法。

  1. using System;  
  2. public class SquareSample  
  3. {  
  4. public void CalcSquare(int nSideLength, out int nSquared)  
  5. {  
  6. nSquared = nSideLength * nSideLength;  
  7. }  
  8. }  
  9. class SquareApp  
  10. {  
  11. public static void Main()  
  12. {  
  13. SquareSample sq = new SquareSample();  
  14. int nSquared; // 不必初始化  
  15. sq.CalcSquare(15, out nSquared);  
  16. Console.WriteLine(nSquared.ToString());  
  17. }  

以上介紹C#方法參數(shù)

【編輯推薦】

  1. 介紹Mono C#編譯器
  2. C#運(yùn)算符重載學(xué)習(xí)總結(jié)
  3. 概述C#語(yǔ)言的結(jié)構(gòu)體
  4. C#遺傳算法學(xué)習(xí)筆記
  5. 討論C#分部方法
責(zé)任編輯:佚名 來(lái)源: 51CTO.com
相關(guān)推薦

2009-08-20 16:25:59

C# 匿名方法

2009-08-25 09:58:56

C#參數(shù)不同點(diǎn)

2009-08-07 17:41:40

C#預(yù)處理

2009-08-27 10:19:22

C#匿名類型

2009-08-06 14:53:41

C# User類

2009-08-10 16:19:37

C#冒泡排序

2009-08-18 17:37:57

C#固定指針

2009-08-21 17:55:52

C#復(fù)合控件

2009-09-01 16:19:57

C# new()約束

2009-08-03 17:51:43

C#引用類型

2009-08-06 18:15:13

C# SQL Serv

2009-08-07 17:12:07

C# DLL函數(shù)

2009-08-13 17:36:54

編譯C#代碼

2009-08-14 16:46:44

C#元數(shù)據(jù)

2009-08-25 13:38:35

C# Timer組件

2009-09-03 09:40:57

C#創(chuàng)建表單

2009-08-25 14:42:41

由C++轉(zhuǎn)向C#

2009-09-07 16:09:19

C#和Java特點(diǎn)

2009-08-21 15:02:31

C#加密算法

2009-08-07 09:29:22

C#數(shù)組C#函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)