Fazendo um tipo de valor se comportar como um tipo de referência usando Expressão <Func <T>>
Sabemos que int é um tipo de valor e, portanto, o seguinte faz sentido:
int x = 3;
int y = x;
y = 5;
Console.WriteLine(x); //says 3.
Agora, aqui está um pouco de código em que queremos, por falta de um termo melhor "vincular", as duas variáveis apontam para o mesmo local de memória.
int x = 3;
var y = MagicUtilClass.linkVariable(() => x);
y.Value = 5;
Console.WriteLine(x) //says 5.
A pergunta é: como é o método linkVariable? Como seria o tipo de retorno?
Embora eu tenha intitulado a postagem como fazendo com que um tipo de valor se comporte como um tipo de referência, o referido método linkVariable também funciona para tipos de referência.
Person x = new Person { Name = "Foo" };
var y = MagicUtilClass.linkVariable(() => x);
y.Value = new Person { Name = "Bar" };
Console.WriteLine(x.Name) //says Bar.
Não tenho certeza de como conseguir isso em c # (não é permitido o uso de código não seguro).
Aprecie idéias. Obrigado.