这是参数传递给方法的默认机制,在这种机制中,当调用方法时,会为每个值参数创建一个新的存储位置,因此,对方法中的参数所做的更改对参数没有影响
using System; namespace CalculatorApplication { class NumberManipulator { public void swap(int x, int y) { int temp; temp=x; /* save the value of x */ x=y; /* put y into x */ y=temp; /* put temp into y */ } static void Main(string[] args) { NumberManipulator n=new NumberManipulator(); /* local variable definition */ int a=100; int b=200; Console.WriteLine("Before swap, value of a : {0}", a); Console.WriteLine("Before swap, value of b : {0}", b); /* calling a function to swap the values */ n.swap(a, b); Console.WriteLine("After swap, value of a : {0}", a); Console.WriteLine("After swap, value of b : {0}", b); Console.ReadLine(); } } }
编译并执行上述代码时,将生成以下输出-
Before swap, value of a :100 Before swap, value of b :200 After swap, value of a :100 After swap, value of b :200
它表明这些值没有变化,尽管它们在函数内部发生了变化。
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)