using System;
//csc array_passing_1.cs
namespace return_array
{
class pass_array
{
public static double[] send_array()
{
double[] dd = {1.1, 1.2, 1.3, 1.4};
Console.WriteLine("sending array --");
for (int i = 0; i < dd.Length; i++) { Console.Write("{0}{1}", dd[i], " "); }
Console.WriteLine("");
return dd;
}
}
class test
{
static void Main()
{
Console.WriteLine("Beging array Enter to begin--");
Console.ReadLine();//("sending array --");
double[] ld = pass_array.send_array();
Console.WriteLine("--Receiving---");
for (int i = 0; i < ld.Length; i++) { Console.Write("{0}{1}", ld[i], " "); }
Console.ReadLine();
}
}
}
//namespace

 

Arrays send and received; the received copy is deep one, meaning any change to the received data is not going to later the original data.

Example of demonstrating array deep/shallow copy

using System;
//csc array_passing_2.cs
namespace return_array
{
class pass_array
{
public static double[] send_array()
{
double[] dd = {1.1, 1.2, 1.3, 1.4};
Console.WriteLine("sending array --");
for (int i = 0; i < dd.Length; i++) { Console.Write("{0}{1}", dd[i], " "); }
Console.WriteLine("");
return dd;
}
}
class test
{
static void Main()
{
Console.WriteLine("Beging array Enter to begin--");
Console.ReadLine();//("sending array --");
double[] ld = pass_array.send_array();
Console.WriteLine("--Receiving---");
for (int i = 0; i < ld.Length; i++) { Console.Write("{0}{1}", ld[i], " "); }
Console.WriteLine();
Console.WriteLine("---mutated---");
double[] cd= ld;
cd[2] = 4.5;
for (int i = 0; i < cd.Length; i++) { Console.Write("{0}{1}", cd[i], " "); }
Console.WriteLine();
Console.WriteLine("---mutated a shallow copy---");
for (int i = 0; i < ld.Length; i++) { Console.Write("{0}{1}", ld[i], " "); }
Console.WriteLine();
Console.WriteLine("--Recheck with original--");
pass_array.send_array();
Console.ReadLine();
}
}
}
//namespace