C# Tips
2009-05-07 08:26:46 来源:WEB开发网例:
class MyClass
{
public int Val = 20;
}
class Program
{
static void MyMethod(MyClass f1, int f2)
{
f1.Val = f1.Val + 5;
f2 = f2 + 5;
f1 = new MyClass();
}
static void Main()
{
MyClass A1 = new MyClass();
int A2 = 10;
MyMethod(A1, A2); // Call the method.
}
}
图片看不清楚?请点击这里查看原图(大图)。
对于Ref参数修饰符号,对于值类型参数的传递,其形参(Formal parameter)和实参(Formal parameter)是栈中同一个数据块。在方法中对于形参所作的更改在控制回调时会反映到实参。对于引用类型的参数的传递,其形参(Formal parameter)是实参(Formal parameter)是指同一个变量(栈中Reverence引用部分和堆中object数据部分),在方法中对于形参所作的更改在控制回调时当然会反映到实参 。例:
class MyClass
{ public int Val = 20; } // Initialize field to 20.
class Program
{
static void MyMethod(ref MyClass f1, ref int f2)
{
f1.Val = f1.Val + 5; // Add 5 to field of f1 param.
f2 = f2 + 5; // Add 5 to second param.
}
static void Main()
{
MyClass A1 = new MyClass();
int A2 = 10;
MyMethod(ref A1, ref A2); // Call the method.
}
}
更多精彩
赞助商链接