日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

C#中方法的參數(shù)

 華燈初放l 2015-04-29

·             C#中方法的參數(shù)有四種類型

        1. 值參數(shù)         (不加任何修飾符,是默認(rèn)的類型)
   2. 引用型參數(shù)  (ref 修飾符聲明)
   3. 輸出參數(shù)    (out 修飾符聲明)
   4. 數(shù)組型參數(shù)  (params 修飾符聲明)

1.  值傳遞:

       值類型是方法默認(rèn)的參數(shù)類型,采用的是值拷貝的方式。也就是說(shuō),如果使用的是值類型,則可以在方法中更改該值,
 
但當(dāng)回調(diào)方法時(shí),不會(huì)保留更改的值。

復(fù)制代碼
       static void ChangeValue(int x, int y)
       {
           
int temp = x;
           x 
= y;
           y 
= temp;
       }

        
static void Main(string[] args)
        {
            
int i = 1, j = 2;
            ChangeValue(i, j);
            Console.WriteLine(
"i = {0}, j = {1}", i, j);
            Console.Read();
        }
/*
*
輸出結(jié)果為: i=1, j=2
* 未能實(shí)現(xiàn)ChangeValue()計(jì)劃的功能,因?yàn)榭刂茩?quán)傳遞回調(diào)用方法時(shí)不保留更改的值
*/
復(fù)制代碼


 2.   引用傳遞(ref類型)
ref關(guān)鍵字使參數(shù)按引用傳遞,若要使用 ref 參數(shù),必須將參數(shù)作為 ref 參數(shù)顯式傳遞到方法,ref 參數(shù)的值被傳遞到 ref 參數(shù)。
其效果是,
當(dāng)控制權(quán)傳遞回調(diào)用方法時(shí),在方法中對(duì)參數(shù)所做的任何更改都將反映在該變量中。
2.1. 若要使用 ref 參數(shù),則方法定義和調(diào)用方法都必須顯式使用 ref關(guān)鍵字。
2.2. 傳遞到 ref 參數(shù)的參數(shù)必須最先初始化。這與 out 不同,out 的參數(shù)在傳遞之前不需要顯式初始化。
2.3. 如果一個(gè)方法采用 ref out 參數(shù),而另一個(gè)方法不采用這兩類參數(shù),則可以進(jìn)行重載。

復(fù)制代碼
       static void ChangeValue(ref int x,ref int y)
       {
           
int temp = x;
           x 
= y;
           y 
= temp;
       }

        
static void Main(string[] args)
        {
            
int i = 1, j = 2;
            ChangeValue(
ref i,ref j);
            Console.WriteLine(
"i = {0}, j = {1}", i, j);
            Console.Read();
        }
/*
*
引用類型實(shí)現(xiàn)了ChangeValue()計(jì)劃的功能:
* 輸出為:
* i = 2, j =1
*/
復(fù)制代碼

 

3.   輸出類型(out類型)
out 關(guān)鍵字會(huì)導(dǎo)致參數(shù)通過(guò)引用來(lái)傳遞。這與 ref 關(guān)鍵字類似。
若要使用 out 參數(shù),必須將參數(shù)作為 out 參數(shù)顯式傳遞到方法,out 參數(shù)的值不會(huì)傳遞到 out 參數(shù)。

其效果是,當(dāng)控制權(quán)傳遞回調(diào)用方法時(shí),在方法中對(duì)參數(shù)所做的任何更改都將反映在該變量中。

3.1. ref 要求變量必須在傳遞之前進(jìn)行初始化,out 參數(shù)傳遞的變量不需要在傳遞之前進(jìn)行初始化。

3.2. 盡管作為out 參數(shù)傳遞的變量不需要在傳遞之前進(jìn)行初始化,但需要在調(diào)用方法初始化以便在方法返回之前賦值。
out適合用在需要retrun多個(gè)返回值的地方,而ref則用在需要被調(diào)用的方法修改調(diào)用者的引用的時(shí)候。

當(dāng)希望方法返回多個(gè)值時(shí),聲明 out 方法非常有用。使用 out 參數(shù)的方法仍然可以返回一個(gè)值。一個(gè)方法可以有一個(gè)以上的 out 參數(shù)。

復(fù)制代碼
 static void ChangeValue(out int x,out int y)
       {
           
//在這里進(jìn)行了i和j的初始化
           x = 1;
           y = 2;

           
int temp = x;
           x = y;
           y = temp;
       }

        
static void Main(string[] args)
        {
            
//此處不進(jìn)行i和j的賦值
            int i , j;   //那么若是給i,j再次賦值后(int=3,j=4),結(jié)果為什么呢?
            ChangeValue(out i,out j);
            Console.WriteLine("i = {0}, j = {1}", i, j);
            Console.Read();
        }
/*
* 輸出類型也實(shí)現(xiàn)了ChangeValue()計(jì)劃的功能:
* 輸出為:
* i = 2, j =1
* 即使給i,j初始化,結(jié)果還是i=2,j=1
*/
復(fù)制代碼

 

4.   數(shù)組型參數(shù)類型(params類型)

params關(guān)鍵字可以指定在參數(shù)數(shù)目可變處采用參數(shù)的方法參數(shù)。也就是說(shuō)。使用params可以自動(dòng)把你傳入的值按照規(guī)則轉(zhuǎn)換為一個(gè)新建的數(shù)組。
在方法聲明中的 params關(guān)鍵字之后不允許任何其他參數(shù),并且在方法聲明中只允許一個(gè) params關(guān)鍵字。

復(fù)制代碼
       public static void UseParams(params object[] list)
       {
           
for (int i = 0; i < list.Length; i++)
           {
               Console.WriteLine(list[i]);
           }
       }

        
static void Main(string[] args)
        {
            
// 一般做法是先構(gòu)造一個(gè)對(duì)象數(shù)組,然后將此數(shù)組作為方法的參數(shù)
            object[] arr = new object[3] { 500'3'"Test" };
            UseParams(arr);

            
// 而使用了params修飾方法參數(shù)后,我們可以直接使用一組對(duì)象作為參數(shù)
            
// 當(dāng)然這組參數(shù)需要符合調(diào)用的方法對(duì)參數(shù)的要求
            UseParams(500'3'"Test");

            Console.Read();
        }
/*
* 輸出為:
*500
*3
*Test
*500
*3
*Test
*/
復(fù)制代碼


 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多