public T Value { get; set; }
public override string ToString()
public static implicit operator T(Ref<T> source)
public string Text { get; private set; }
public override string ToString()
static Ref<Foo> Container = new Ref<Foo>(null);
static void MyMethod(Ref<Foo> thisArg)
Action action = () => thisArg.Value = new Foo("After");
public static void Main()
Container.Value = new Foo("Before");
Console.WriteLine("Value after call is: {0}", Container);