In short, you are not doing this. Getters and setters are not retrieved - they are indistinguishable from the presence of a field (unless you make side effects, of course).
In your example, you can simply do:
class Actor { int x; }
and get exactly the same effect.
What you want for some actor "actor" to independently perform the functions:
var item = new PropertyItem(() => actor.x, (v) { actor.x = v; });
This proposal for generalized passages is approved and is likely to be implemented in the near future and will allow to fix getters and setters, for example:
var item = new PropertyItem(actor#x, actor#x=);
source share