C# doesn't allow ref on properties. void doStuff( ref int a) {a++;} doStuff(obj.NumberProperty); //Compiler magic. Stores in local variables behind the scenes. Calls getter and setter.