下面是我看到的js參數傳遞的方法,其中說js只有按值傳遞
以上是我在《javascript高級程序設計》中看到的。然后我用C#寫了下面這段代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace refTest
{
class Program
{
static void SomeFunction(int[] ints, int i)
{
ints[0] = 100;
ints = new int[] { 3, 4, 5, 9, 8 };
i = 100;
}
static void Main(string[] args)
{
int i = 0;
int[] ints = { 0, 1, 2, 4, 8 };
Console.WriteLine("i = " + i);
Console.WriteLine("ints[0] = " + ints[0]);
Console.WriteLine("Call SomeFunction.");
SomeFunction(ints, i);
Console.WriteLine("i = " + i);
Console.WriteLine("ints[0] = " + ints[0]);
}
}
}
結果發現和JS中的情形是一樣的,難道C#的引用類型不是按引用傳遞的嗎?