使用using会自动调用MyObject的Dispose方法.如果MyObject未实现IDispose接口,则编译时会出错:无法将类型“MyProjects. MyObject”隐式转换为“System.IDisposable”这种写法可替代try{ //... }catch{ }finnaly{ MyObject.Dispose ( ) ; }
代码片段:
private void openFileDialog_FileOk(object sender, System.ComponentModel.CancelEventArgs e) { string fullPathname = openFileDialog.FileName; FileInfo src = new FileInfo(fullPathname); filename.Text = src.Name; source.Text = "";
using (TextReader reader = new StreamReader(fullPathname)) { string line; while ((line = reader.ReadLine()) != null) { source.Text += line + "/n"; } } }
其中的reader不再需要手写Close和Dispose方法了,using关键字实现了对象的自动关闭和资源释放!