このリンクによると (既に投稿されています):
http://msdn.microsoft.com/en-us/library/s6938f28(VS.80).aspx
参照型を値で渡す方法を以下に示します。参照型 arr は値によって Change メソッドに渡されます。
配列が新しいメモリ位置に割り当てられていない限り、変更は元のアイテムに影響します。その場合、変更はメソッドに対して完全にローカルです。
class PassingRefByVal
{
static void Change(int[] pArray)
{
pArray[0] = 888; // This change affects the original element.
pArray = new int[5] {-3, -1, -2, -3, -4}; // This change is local.
System.Console.WriteLine("Inside the method, the first element is: {0}", pArray[0]);
}
static void Main()
{
int[] arr = {1, 4, 5};
System.Console.WriteLine("Inside Main, before calling the method, the first element is: {0}", arr [0]);
Change(arr);
System.Console.WriteLine("Inside Main, after calling the method, the first element is: {0}", arr [0]);
}
}
最後に、より詳細な議論については、この質問の Jon Skeet による投稿を参照してください。
C# での参照または値によるオブジェクトの受け渡し