So this works..
public MyClass(ref Apple apple)
{
apple = new Apple(\"Macintosh\"); // Works fine
}
But is it possible to do something
No, there isn't. myApple is a field that holds a reference to an Apple; the parameter apple, however, is actually a reference-to-a-reference-to-an-Apple. When you assign apple to myApple you dereference the value of the parameter. Beyond that, they are separate and distinct.
So no: it is not possible.
What would be possible is to have something like:
public class AppleWrapper {
public Apple Value {get;set;}
}
Now; if you store an AppleWrapper, any number of callers can access and change the .Value