WeakReference class works on MonoTouch.

A weak reference allows the garbage collector to collect an object while still the object can be accessed. Details of a weak reference class is here: WeakReference Class (System) | Microsoft Docs.
I wrote a simple test code that allocates 10,000 value objects and contains in a weak reference, where each value object has a string field length of 36.Test code is here: http://cid-dc553df7ed98b57a.skydrive.live.com/self.aspx/public/WeakRefTest.zip.

The test result shows that weak reference works both on a simulator and a device. The above screen shot is that of a simulator, well I confirmed it works on a device. Although a value object has only a string field of 36 chars (therefore 10,000 vos consumes 360kB at least), about 96% (9,628 of 10,000) value objects are deallocated on a iPod touch (1G). (when 100 vos are allocated, no vo is deallocated.) This may show strict memory management of a mobile device.

弱参照がMonoTouchで使用できるかを確認しました.結果は使えます.
通常の強参照と違い,弱参照とはガーベージコレクターの回収を許しつつインスタンスオブジェクトを保持します.従ってアクセスしようとしたらインスタンスが勝手にNullになっていた,なんてことが生じます.キャッシュなどメモリをあまり消費せずにインスタンスを保持しておきたい用途によく使います.弱参照の詳細は,Microsoft .NET Framework の自動メモリ管理 Part Ⅱ | Microsoft Docsにあります.テストコードはこちら: http://cid-dc553df7ed98b57a.skydrive.live.com/self.aspx/public/WeakRefTest.zip.
実行時の動的なコード書き換えが許されないためにMonoTouchはターゲット向けコンパイル時にJust-In-Time compilation相当の処理を行います.Common Language Runtime に絡む振る舞いが違うと困ると思い確認のためにこれを行いました.
テストは,文字列長36の文字列をフィールドにもつバリューオブジェクトクラスを前述のドキュメントのサンプルコードに従いWeakReferenceクラスで保持するものです.まず10,000個のインスタンスを確保してから,直後にnullにされているインスタンス参照の数を数えています.テストコードはシミュレータと実機で動作しました.iPod touch 1G で動かした結果,約96%ほどのバリューオブジェクトが解放されていました.(100個程度だったら1つも解放されないのですけど) 10,000個のインスタンスとはいっても,今回の場合だとたかだか360Kバイトじゃないかと思っていたのですが,自分が考えているよりもメモリ管理は厳しくやられるのかもしれません.