Заставить тип значения вести себя как ссылочный тип, используя 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 # (кстати, нельзя использовать небезопасный код)?
Цените идеи. Благодарю.