在C/C#中,函数/方法都可以按值的形式传递参数,实参和形参使用的是两个不同内存中的值。在这种情况下,当形参的值发生改变时,不会影响实参的值,从而保证了实参数据的安全。
using System;
namespace CalculatorApplication
{
class NumberManipulator
{
public void swap(int x, int y)
{
int temp;
temp = x;
x = y;
y = temp;
}
static void Main(string[] args)
{
NumberManipulator n = new NumberManipulator();
int a = 100;
int b = 200;
Console.WriteLine("在交换前,a、b的值:{0}、{1}",a,b);
n.swap(a,b);
Console.WriteLine("在交换后,a、b的值:{0}、{1}", a, b);
Console.ReadLine();
}
}
这个历程中打印结果:
在交换前,a、b的值:100、200
在交换后,a、b的值:100、200
在历程中x,y作为函数的形参(形式主义的占位符,形参的作用域仅限于函数内部,函数执行完成后,形参所占用的内存会被释放),而a,b作为实参,不管形参怎么改变不会形象其变化。