位置:首页 > 高级语言 > C#在线教程 > C#按值传递参数

C#按值传递参数

这是默认的机制传递参数的方法。在这个机制中,当一个方法被调用时,创建每个值参数在一个新的存储位置。

实际参数的值复制它们。所以,该参数在方法中的变化对参数没有影响。下面的例子演示了这一概念:

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

这表明,数值没有被改变;虽然它们已经在函数内部改变。