C# ref和out关键字
生活随笔
收集整理的這篇文章主要介紹了
C# ref和out关键字
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
ref和out關(guān)鍵字初解
????參數(shù)可以通過引用和值傳遞給方法。通過引用傳遞給方法的變量可以有調(diào)用它的方法作自由改變,所作的修改會影響原來的變量的值;在C#中,除非特別說明,所有的參數(shù)都是值傳遞。
這是默認(rèn)情況,也可以使用ref關(guān)鍵字,迫使值參數(shù)通過引用傳遞給方法,則給方法對變量所作的修改都會影響原來對象的值。在定義該方法時(shí)把該參數(shù)定義為ref后,在調(diào)用該方法時(shí),還需要添加ref關(guān)鍵字。
static void myFun(int x,ref int y)
{
????y = x;
}
//調(diào)用該方法
myFun(x,ref y);
????有時(shí)為了從一個(gè)函數(shù)中返回多個(gè)值,我們需要使用out關(guān)鍵字,把輸出值賦給通過引用傳遞給方法的變量(也就是參數(shù))。但C#要求變量再被引用的前必須初始化。在調(diào)用該方法時(shí),還需要添加out關(guān)鍵字。
static void myFun(out int y)
{
????y = 10; //在這里進(jìn)行初始化
}
//
//調(diào)用該方法
public static int Main()
{
????int i;
????myFun(out i);
????Console.Writeline(i);
????return 0;
}
從上面的例子我們可以看出,out關(guān)鍵字和ref的不同點(diǎn)主要在:使用out關(guān)鍵字時(shí),必須在方法體內(nèi)為變量提供初始值。??
????參數(shù)可以通過引用和值傳遞給方法。通過引用傳遞給方法的變量可以有調(diào)用它的方法作自由改變,所作的修改會影響原來的變量的值;在C#中,除非特別說明,所有的參數(shù)都是值傳遞。
這是默認(rèn)情況,也可以使用ref關(guān)鍵字,迫使值參數(shù)通過引用傳遞給方法,則給方法對變量所作的修改都會影響原來對象的值。在定義該方法時(shí)把該參數(shù)定義為ref后,在調(diào)用該方法時(shí),還需要添加ref關(guān)鍵字。
static void myFun(int x,ref int y)
{
????y = x;
}
//調(diào)用該方法
myFun(x,ref y);
????有時(shí)為了從一個(gè)函數(shù)中返回多個(gè)值,我們需要使用out關(guān)鍵字,把輸出值賦給通過引用傳遞給方法的變量(也就是參數(shù))。但C#要求變量再被引用的前必須初始化。在調(diào)用該方法時(shí),還需要添加out關(guān)鍵字。
static void myFun(out int y)
{
????y = 10; //在這里進(jìn)行初始化
}
//
//調(diào)用該方法
public static int Main()
{
????int i;
????myFun(out i);
????Console.Writeline(i);
????return 0;
}
從上面的例子我們可以看出,out關(guān)鍵字和ref的不同點(diǎn)主要在:使用out關(guān)鍵字時(shí),必須在方法體內(nèi)為變量提供初始值。??
總結(jié)
以上是生活随笔為你收集整理的C# ref和out关键字的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自建房多少钱啊?
- 下一篇: 腹部透视需要多少钱?