Вы не можете, в основном.Не напрямую.Псевдоним «передача по ссылке» действителен только в самом методе.
Самое близкое, что вы могли бы получить - это изменяемая оболочка:
public class Wrapper<T>
{
public T Value { get; set; }
public Wrapper(T value)
{
Value = value;
}
}
Тогда:
Wrapper<int> wrapper = new Wrapper<int>(1);
...
TestClass tc = new TestClass(wrapper);
Console.WriteLine(wrapper.Value); // 1
tc.ModifyWrapper();
Console.WriteLine(wrapper.Value); // 2
...
class TestClass
{
private readonly Wrapper<int> wrapper;
public TestClass(Wrapper<int> wrapper)
{
this.wrapper = wrapper;
}
public void ModifyWrapper()
{
wrapper.Value = 2;
}
}
Вы можете найти интересное недавнее сообщение Эрика Липперта в блоге "ref return и ref localals" *. 1011 *