現在の 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 だな