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.

questionAnswers(3)

yourAnswerToTheQuestion