41
1
using System;
2
3
public class Program
4
{
5
public static void Main()
6
{
7
int[] numbers = new int[]{10, 20, 30, 40};
8
int[] oldNumbers = numbers; // store a temporary reference to numbers
9
10
Console.WriteLine("--- Change reference/pointer/memory location");
11
12
Console.WriteLine($"Original: {string.Join(", ", numbers)}");
13
14
ChangeReference(ref numbers);
15
16
Console.WriteLine($"After: {string.Join(", ", numbers)}");
17
Console.WriteLine($"Still the same object? {numbers.Equals(oldNumbers)}");
18
19
oldNumbers = numbers;
20
Console.WriteLine();
21
Console.WriteLine("--- Change content");
22
23
Console.WriteLine($"Original: {string.Join(", ", numbers)}");
24
25
ChangeContent(ref numbers);
26
27
Console.WriteLine($"After: {string.Join(", ", numbers)}");
28
Console.WriteLine($"Still the same object? {numbers.Equals(oldNumbers)}");
29
}
30
31
static void ChangeReference(ref int[] nums)
32
{
33
nums = new int[]{1, 2, 3, 4, 5};
34
}
35
36
static void ChangeContent(ref int[] nums)
37
{
38
nums[0] = 100;
39
nums[1] = 200;
40
}
41
}
Cached Result