using System;
public class Program
{
public static void Main()
//A
//1 - Vrai
int x = 5;
ref int a = ref x;
ref int b = ref x;
Console.WriteLine($"{a} == {b}");
//2 - Faux
//3 - Vrai
string s = "bonjour";
ref string c = ref s;
//B
//ValueType : int, char
//ReferenceType : int[], ref int, ref float, string, ref string, ref int[]
//C
int foo = 10; //déclaration d'un int foo et initialisation avec une valeur de 10
ref int r = ref foo; //déclaration d'une référence vers un float r et initialisation à l'adresse de foo
r = 15; //la valeur référée par r est affectée avec 15 (foo == 15)
int bar = r; //déclaration d'un int bar et initialisation à la valeur référée par r (r réfère à la valeur foo, donc bar == 10)
bar++; //incrémentation de bar (qui est une valeur complètement distincte de foo)
Console.WriteLine(foo); //Affiche 15
Console.WriteLine(bar); //Afiche 16
Console.WriteLine(r); //Affiche 15
double[] d = null; //déclaration d'un tableau de double d et initialisation à l'adresse nulle
}