c ref與out的區別

2022-02-09 17:20:12 字數 1102 閱讀 9118

c#  ref與out的區別

相同點:都是輸出引數

不同點:

ref:

1、必須初始化,即:必須賦初始值;

2.有進有出;

3、用在需要被呼叫的方法修改呼叫者的引用的時候。

4、是傳遞引數的位址

out:

1.不需要初始化,即:不需要賦初始值;

2、只出不進;

3、用在需要retrun多個返回值的地方;

4、返回值;

通過**更直觀的看出它們的區別:

ref:

1

class

program211

///12

///使用ref方法,引數必須加ref關鍵字

13///

14///

15///

16private

static

void exchage(ref

int num1,ref

intnum2)

17;num2的值:

", num1, num2);

20int temp =num1;

21 num1 =num2;

22 num2 =temp;

23//

交換後24 console.writeline("

num1的值:;num2的值:

", num1, num2);

25console.readkey();

26 }

view code

out:

1

class

program210

///11

///求和

12///

13///

14///

15///

16private

static

void numsum(int num1,int num2,out

intsum)

1721 }

view code

C Ref 與out 的區別

在c 中,有四種傳遞引數方式 1.傳值 value 無額外修飾符 2.傳址 reference 需修飾符ref,傳入函式的引數必須先賦值 3.輸出引數 output 需修飾符out,適用於return多個返回值,必須在方法中賦值 4.陣列引數 array 需修飾符params 而out是只出不進 外...

C ref與out之間的區別

相同點 方法的定義和呼叫都必須顯示使用ref out關鍵字。都會導致引數按引用傳遞。不同點 傳遞給ref關鍵字的引數必須賦初始值,而out不用。out關鍵字會清空變數,即使變數已經賦值也不行,退出函式時所有out引用個變數都要賦值。說明 ref的應用場景是內部對外部的值進行改變,而out則是內部對外...

C ref和out的區別

首先 兩者都是按位址傳遞的,使用後都將改變原來引數的數值。其次 ref可以把引數的數值傳遞進函式,但是out是要把引數清空,就是說你無法把乙個數值從out傳遞進去的,out進去後,引數的數值為空,所以你必須初始化一次。這個就是兩個的區別,或者說就像有的說的,ref是有進有出,out是只出不進。需求假...