obi: alpha: 4, beta: 5 ob2: alpha: 6, beta: 7
ob2 .
: alpha: 6, beta: 7 obi 2 .
Same As () () MyClass . Same As () alpha beta , ob. true , . () alpha beta , ob, alpha beta . , , .
, . . , . .
. . , , , , . . , . , . , , , , .
C# , , . , , int double, , , , . .
// , using System;
class Test {
/* , . */ public void NoChange(int i, int j) {
i = i + j; j = -j;
}
}
class CallByValue {
static void Main() {
Test ob = new Test();
int a = 15, b = 20;
Console.WriteLine(" b : " + a + " " + b);
Ob.NoChange(a, b);
Console.WriteLine(" b : " + a + " " + b);
}
}
.
b : 15 2 0 b : 15 2 0
, , NoChange (), , . , i j , b i j. , i .
|
|
. - . , , , , . (, , , .) , , , , , . .
, . , . , , , , . , , . .
// .
Using System;
class Test {
Public int a, b;
public Test(int i, int j) { a = i; b = j;
/* . ob.a ob.b , , . */ public void Change(Test ob) { ob.a = ob.a + ob.b; ob.b = -ob.b;
}
}
class CallByRef {
static void Main() {
Test ob = new Test(15, 20);
Console.WriteLine("ob. ob.b : " + ob.a + " " + ob.b);
Ob.Change(ob);
Console.WriteLine("ob. ob.b : " + ob.a + " " + ob.b);
}
}