値型への参照を扱うコンテナ
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=388686&SiteID=7 の余談の続き。
C# では簡単に実現できないが、.NET ではそういうところは別言語で作成しちゃって、使うだけなら簡単にいけるかもしれないという可能性がある。
プロパティはメタデータであって、実際のアクセスはメソッド呼び出しのように扱われるのだから、ref int 型のプロパティに対するミューテーター
void set_PropertyName(ref int n) { ... }
を代入文によって呼び出すのは特に問題なく解釈されるかもしれない。(とか書いてて無理だと思ってるけど)
同様に、
void method(ref Rectangle rect) { rect.XXX(); }
というような、ref Rectangle 型に対するメソッド呼び出しはフツーに実施できるので、
ref Rectangle get_ProertyName() { ... } getPropertyName().XXX();
という呼び出しも、もしかしたらアッサリコンパイルしちゃってくれるかもしれない!(笑