So this works..
public MyClass(ref Apple apple)
{
apple = new Apple("Macintosh"); // Works fine
}
But is it possible to do something like this?
private Apple myApple;
public MyClass(ref Apple apple)
{
myApple = apple;
}
public void ModifyApple()
{
myApple = new Apple("Macintosh"); // does not change the input variable like the first example did
}
When the ref variable is copied to the member variable myApple
it appears to lose it's 'ref-ness' and re-assigning it no longer changes the input variable. Is there a way around this?
ref
-ness is a property of parameters of functions and arguments you are passing to functions. It's not a property of variables (or even fields) in general.
So indeed, what you are trying there is doomed from the start.