ref傳值和out傳值

2021-10-03 01:30:07 字數 1712 閱讀 1287

目錄

ref,out區別

out傳值

ref傳值

1.定義方法時,引數用out修飾,在呼叫該方法的時候,引數也需要用out修飾。

2.在定義方法時,必須給引數賦初值。

2.在呼叫該方法時,可以賦初值,也可以不賦初值。

4.out這個單詞是「出去」的意思,所以引數加out就是將方法裡面賦的那個值傳到外面去了,方法外面賦不賦值都不起作用,所以說out只能將在方法裡面賦的初值傳出去,但不能將外面賦的值傳入。

5.out一般用在函式需要有多個返回值的場所

下面這個例子就是使用out傳值

class program

public static int addnumber(out int num1)

}

out一般用在函式需要有多個返回值的場所,下面這個例子就是用out傳值,有三個返回值

class program

,,", number1, number2, sum); //顯示3個值:10,20,30

console.readkey();

}public static int sum(out int num1, out int num2)

}

1.ref的用法和out有所不同,相同點是,ref和out一樣,方法中的引數用ref修飾,呼叫此方法的時候引數也需要用ref修飾。

2.不同的是,out只能將值傳出,但是ref既可以傳入,也可以傳出。想要傳入,必須在方法外賦值,也就是說,傳入方法中的引數必須現在外面被初始化。方法裡面可以賦初值,也可以不賦初值。

下面這段**,在show方法中沒有給num1,num2賦初值,在呼叫該方法時,給引數賦了初值10和20,這時候,呼叫show方法的時候,會將10,20傳進show方法中,然後在將求和結果30返回,這就是ref將值傳入。

class program

",number1);

console.writeline("", number2);

console.writeline("", sum); //顯示結果30

console.readkey();

}public static int show(ref int num1, ref int num2)

}

而下面這段**,在show方法中給引數賦了初值100,200,在呼叫該方法的時候也賦了初值,這時候,在程式在呼叫show方法的時候,先將10,20的值傳進show方當中,但是此時,裡面兩個引數有了初值100和200,這時候返回傳出的結果四100+200,也就是傳出去300。即ref可傳入,也可傳出。

static void main(string args)

",number1); //100

console.writeline("", number2); //200

console.writeline("", sum); //300

console.readkey();

}public static int show(ref int num1, ref int num2)

有不對的地方,歡迎批評指正~~~

ref 和out 傳值異同

ref關鍵字使引數按引用傳遞。其效果是,當控制權傳遞 用方法時,在方法中對引數所做的任何更改都將反映在該變數中。若要使用ref引數,則方法定義和呼叫方法都必須顯式使用ref關鍵字。例如 class refexample static void main 傳遞到ref引數的引數必須最先初始化。這與 o...

c 中傳值用的 ref 和out 好用哦!!

ref是傳遞引數的位址,out是返回值,兩者有一定的相同之處,不過也有不同點。使用ref前必須對變數賦值,out不用。out的函式會清空變數,即使變數已經賦值也不行,退出函式時所有out引用的變數都要賦值,ref引用的可以修改,也可以不修改。區別可以參看下面的 using system static...

Python的傳值和傳值

變數a傳入函式f之後,函式內部對a進行的操作會不會影響到函式外部的a?def f a a 1 99a 1,2,3 f a print a 1,99,3 有影響def f a a 1 a 1 2,3 f a print a 1,2,3 無影響classa def init self,v self.v ...