//Reference types static void NoRef(HelperObject a) { //a.Value == 10; a.Value = 17; //a.Value == 17; a = new HelperObject(25); //a.Value == 25; //a.Value == 17 in caller }
static void Ref(ref HelperObject a) { //a.Value == 10; a.Value = 17; //a.Value == 17; a = new HelperObject(25); //a.Value == 25; //a.Value == 25 in caller, because reference is changed to new object also in caller }
public static void RunReferences() { var a = new HelperObject(10); NoRef(a); System.Console.WriteLine($"NoRef returned Value: {a?.Value}"); Ref(ref a); System.Console.WriteLine($"Ref returned Value: {a?.Value}"); }