假設我們有如下的僞代碼:通知對象
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中(與_ 指數/ _newindex),但我正在寫在C#語言上下的示例代碼,因爲我想大多數人都知道它好,我相信這是比較通用的規劃問題。
謝謝!我在Lua中應用了類似的方法,複製了metatable並在__newindex末尾添加了「PropertyChanged」。 – John