C# での RAII は D っぽくなってくれないかな

現在の C# はこんな感じだけど

void Foo()
{
    using (StreamReader file = new StreamReader(@"C:\a.txt"))
    {
        // ファイルを使った処理...

    } // ここで Dispose
}


D っぽくこう書けるようにならないかなー

void Foo()
{
    scope StreamReader file = new StreamReader(@"C:\a.txt");

    // ファイルを使った処理...

} // ここで Dispose


それか Ruby のブロックぽく・・・

void Foo()
{
    new StreamReader(@"C:\a.txt") { |file|
        // ファイルを使った処理...

    } // ここで Dispose
}

んー・・・やっぱり D だな