這些都是針對方法而言的。
值傳遞指的是方法被呼叫時傳遞進來的引數是一個副本(複製),而不是傳遞進來引數本身。換句話說對值傳遞引數的修改不會影響到呼叫方傳遞的引數物件;
而引用傳遞指的是方法被呼叫時傳遞進來的引數是一個引用,換句話說傳遞進來的引數是指向呼叫方傳遞的引數本身的。對引用傳遞的引數的修改會影響到呼叫方傳遞的引數物件。
給個程式碼:
publicvoid引數值傳遞方法(inti)
{
i=10;
}
publicvoid引數引用傳遞方法(refinti)
然後呼叫的Main方法:
publicstaticvoidMain(string[]args)
inta=30;
引數值傳遞方法(a);
Console.WriteLine("a={0}",a);
引數引用傳遞方法(a);
輸出結果如下:
30
10
這些都是針對方法而言的。
值傳遞指的是方法被呼叫時傳遞進來的引數是一個副本(複製),而不是傳遞進來引數本身。換句話說對值傳遞引數的修改不會影響到呼叫方傳遞的引數物件;
而引用傳遞指的是方法被呼叫時傳遞進來的引數是一個引用,換句話說傳遞進來的引數是指向呼叫方傳遞的引數本身的。對引用傳遞的引數的修改會影響到呼叫方傳遞的引數物件。
給個程式碼:
publicvoid引數值傳遞方法(inti)
{
i=10;
}
publicvoid引數引用傳遞方法(refinti)
{
i=10;
}
然後呼叫的Main方法:
publicstaticvoidMain(string[]args)
{
inta=30;
引數值傳遞方法(a);
Console.WriteLine("a={0}",a);
引數引用傳遞方法(a);
Console.WriteLine("a={0}",a);
}
輸出結果如下:
30
10