Предположим, у нас есть следующий псевдокод:
class XY
{
int X { get; set; }
int Y { get; set; }
}
class Foo
{
XY _xy;
XY xy
{
get
{
return _xy;
}
set
{
Write("Foo's XY is set!");
_xy = value;
}
}
}
Это прекрасно работает, пока я делаю
Foo foo;
foo.xy = XY(1, 3);
XY temp = foo.xy;
temp.y = 5;
foo.xy = temp;
, но не работает для:
Foo foo;
foo.xy = XY(1, 3);
foo.xy.y = 5; // no "Foo's XY is set!" here
Как последнего можно достичь?В частности, я имею в виду Lua (с _ index / _newindex), но я пишу пример кода на языке C #, потому что я думаю, что большинство людей это знают, и я считаю, что это более общая проблема программирования.