在C#中,在次函數(shù)中調(diào)用時(shí)改變了其中的數(shù)值,主函數(shù)中也將發(fā)生改變
ref 關(guān)鍵字使參數(shù)按引用傳遞。其效果是,當(dāng)控制權(quán)傳遞回調(diào)用方法時(shí),在方法中對(duì)參數(shù)所做的任何更改都將反映在該變量中。若要使用 ref 參數(shù),則方法定義和調(diào)用方法都必須顯式使用 ref 關(guān)鍵字
out 關(guān)鍵字會(huì)導(dǎo)致參數(shù)通過(guò)引用來(lái)傳遞。這與 ref 關(guān)鍵字類似,不同之處在于 ref 要求變量必須在傳遞之前進(jìn)行初始化。若要使用 out 參數(shù),方法定義和調(diào)用方法都必須顯式使用 out 關(guān)鍵字。
Java里面不像C#那樣,Java只有對(duì)象類型參數(shù)才是傳地址的,Java的基礎(chǔ)類型變量做參數(shù)的時(shí)候,都只是傳值。
解決方法是,用Java的類做函數(shù)的參數(shù)類型。
如下是我寫(xiě)的一個(gè)例子說(shuō)明:
文件名:byRefVariable.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
//-------------------------------------- public class byRefVariable{ public static void main(String args[]) { obj test= new obj(); System.out.println( "沒(méi)有把test作實(shí)參傳遞給changeIt方法之前的test.var的值=" +test.var); changeIt(test); //坐實(shí)參傳遞到一個(gè)函數(shù)! System.out.println( "test作實(shí)參傳遞給changeIt之后" +test.var); } public static void changeIt(obj a) { a.var= 12580 ; } } class obj //我在這里定義了一個(gè)類。 { int var= 0 ;} |
以上就是小編為大家?guī)?lái)的在java中實(shí)現(xiàn)C#語(yǔ)法里的按引用傳遞參數(shù)的方法的全部?jī)?nèi)容了,希望對(duì)大家有所幫助,多多支持服務(wù)器之家~