目錄
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 ...