>>815
まず、 Windows クラスが Point を内部に持つかどうかという実装の詳細は関係ない。
そのうえで Move() 関数か、 setter か、どっちか呼び出し元のコードが自然になるほうを
選ぶといい。呼び出し元のコードがどうなるかに基づいて設計するのがポイント。

C# のプロパティはインターフェースを作る際の選択肢として、関数呼び出しの表記よりも
直感的な object.property = value というような表記を選べるようにしたのであって、内部に
そのようなデータを持っていることを前提としておらず、ここで非難されている、
実装を暴露するような getter/setter とは違う。その点で「言語側でプロパティのサポートが
あるかないかという環境の違い」という認識は間違ってないと思う。