Reference 型が欲しい

Reference 型を使いたいシーンが多々ある。例えば以下のようなコード。

var hoge:Hoge = new Hoge();
var task:HogeInitTask = new HogeInitTask(hoge);

これは、タスクで、Hoge 型の hoge を初期化するもので、タスクは任意のタイミングで実行される。タスクの中身は

class HogeInitTask {
public function run():Void {
this.hogeRef = HogeInitializer.doSomething();
}
}

このような感じ。これだと、初期化の処理が代入なので、hogeRef が hoge への参照では無くなってしまう。従って

class HogeInitTask {
public function run():Void {
this.hogeRef.init(HogeInitializer.doSomething());
}
}

メソッドの呼び出しにしているが、そもそもの設計がまずい気もする。

BeInteractive 製 Reference 型の、value を Object 型にしたくないとなると、各クラスごとに Reference 型を作らねばならないので、迷ったあげく上記の方法に逃げた。C# の ref パラメータの挙動が理想だ。