Заставить тип значения вести себя как ссылочный тип, используя Expression <Func <T >>

Мы знаем, что int является типом значения, и поэтому имеет смысл следующее:

int x = 3;
int y = x;
y = 5;
Console.WriteLine(x); //says 3. 

Теперь немного кода, в котором мы хотим из-за отсутствия лучшего термина «связать» две переменные, указывающие на одну и ту же область памяти.

int x = 3;
var y = MagicUtilClass.linkVariable(() => x);
y.Value = 5;
Console.WriteLine(x) //says 5.

Вопрос в следующем: как выглядит метод linkVariable? Как будет выглядеть тип возврата?

Несмотря на то, что я назвал этот пост как способ заставить тип значения вести себя как ссылочный тип, упомянутый метод linkVariable работает и для ссылочных типов .., т.е.

Person x = new Person { Name = "Foo" };
var y = MagicUtilClass.linkVariable(() => x);
y.Value = new Person { Name = "Bar" };
Console.WriteLine(x.Name) //says Bar.

Я не уверен, как добиться этого в C # (кстати, нельзя использовать небезопасный код)?

Цените идеи. Благодарю.

Ответы на вопрос(3)

Ваш ответ на вопрос