using
system;
using
system.collections.generic;
using
system.linq;
using
system.text;
namespace
public
person()
public
void
printinfo()
}public
static
void
sendapersonbyvalue(person p)
static
void
main(
string
args)
}}輸出的結果,以前我注意過,不過現在又忘了,結果自己的結果出了問題,這個是個很簡單的問題,如果用
按引用public
static
void
sendapersonbyvalue(
refperson p)
static
void
main(
string
args)
{person fred
=new
person(
"fred",
12);
fred.printinfo();
sendapersonbyvalue(
reffred);
fred.printinfo();
console.read();
結果是不同的。
區別:按值傳遞型別複製了指向呼叫者物件的引用,sendapersonbyvalue()方法與呼叫者指向同乙個物件,所以可以改變物件狀態資料,但是無法指向乙個新的物件,和常量指標類似。
理解了還是挺簡單的ref這個關鍵字也在許多地方多用用。
按值傳遞和按引用傳遞
對於基本型別而言,是按值傳遞的 基本型別儲存在棧中 基本型別引數的傳遞和基本型別的複製一樣,傳遞的是值本身 var a 1 function test x test a console.log a 1按值傳遞的意思就是形參是實參的複製,形參實參互不干擾 so,雖然在函式test中a被修改,但是並沒有...
Java按值傳遞和按引用傳遞
如果傳遞引數是基本型別或其包裝類,則按值傳遞,改變引數的值,實際引數的值不變。public static void main string args public static void changei integer i 如果傳遞引數是類或陣列,則按引用傳遞,改變物件的引用,實參的引用不會改變,但...
JavaScript 按值傳遞 按引用傳遞
1 值的比較 引用的比較 首先,原始值的比較是值的比較 只有在它們值相等的時候它們才相等 比如簡單的 var a1 10 var a2 10 console.log a1 a2 true 其次,物件的比較並非值的比較 物件的比較均是引用的比較,當且僅當它們引用同乙個基物件時,它們才相等。即使兩個物件...