using 的用法
背景知识:
在项目中,经常会看到这样的代码 using( ){ } ,一直不明白为什么会这么写,这么写的好处是什么,之前在面试的过程中也遇到过这样的问题,我是这样回答的:这样写可能跟垃圾回收机制有关吧。当然,只是答对额一小部分,那么接下来我们一起研究研究吧。
using 用法:
1. 当然,在cs代码中,你看代码的最上面就可以看出,它可以通过 using 关键字把命名空间调出来,这样写的好处就是不需要再在下面代码中加命名空间,这类似于Java代码中的 Import关键字一样;

2. 给命名空间重命名,和上面的类似吧。

3. 当然这一种,也是最重要的一种就是,形成一个范围,内部声明的变量或者实例化的实体,在范围结束时自动释放变量并且调用响应类的 Dispose 方法,换句话说:一个函数里可能会处理某个对象,using语句可以保证对象被恰当的处理掉。当然用try { } finally { }也可以实现,但是代码美观程度不如using
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { using (Student st = new Student()) { } } } public class Student { public string Name { get; set; } public int Age { get; set; } } }
上面为代码,但是using处报错了,什么错呢?“using 语句中所使用的类型必须可隐式转化System.IDiposable”,就是说啊,你using里的类必须实现了Dispose()方法,没这个方法,那么它在范围结束时,是不能消除对应的实例的。完善后的代码如下:
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { using (Student st = new Student()) { } } } public class Student : IDisposable { public string Name { get; set; } public int Age { get; set; } public void Dispose() { this.Dispose(); GC.SuppressFinalize(this); } } }
你的类要实现IDisposable 接口,把那个在类里实现Dispose方法;
真正的大师永远怀着一颗学徒的心。

浙公网安备 33010602011771号