Hey,
I've been reading up about methods that return a reference to a variable in C# and just wanted to clarify if the below scenario is an access modifier violation
using System;
class Program {
private string name = "monty";
public string Name {
get{ return name; }
set{ name = value; }
}
public ref string FoobarRef(){
name += " python";
return ref name;
}
public static void Main (string[] args) {
Program prog = new Program();
ref string localName = ref prog.FoobarRef();
Console.WriteLine(localName); //monty python
localName += " are very amicable"; //references prog.name
Console.WriteLine(prog.Name); //outputs monty python are very amicable
Console.WriteLine(localName); //outputs monty python are very amicable
}
}
In the above code snippet, I'm able to access and change (via a reference ie. localName), a private field of the class (name) outside the class.