是什么决定我是否可以使用具有使用功能的对象?

时间:2010-12-17 13:30:17

标签: c# dispose

例如:

using (disposable object here)
{

}

是什么决定我是否可以这种方式使用对象?

这会正常工作吗?

using (WebClient webClient = new WebClient())
{

}

4 个答案:

答案 0 :(得分:7)

为了在using语句中使用,类需要实现IDisposable接口。

在您的示例中,WebClient派生自Component,它实现IDisposable,因此它确实有效。

答案 1 :(得分:1)

如果类实现了IDisposable interface,您可以使用它。这个关键字基本上只是在using块之后自动调用对象的IDisposable.Dispose()方法的语法糖。

Dispose()方法:

  

执行与释放,释放或重置非托管资源相关的应用程序定义任务。

答案 2 :(得分:1)

using语句中提供的对象必须实现IDisposable接口。

此接口提供Dispose方法,该方法应释放对象的资源。

参考:http://msdn.microsoft.com/en-us/library/yh598w02(v=vs.80).aspx

答案 3 :(得分:0)

如果对象实现了IDisposable

WebClient继承自Component,它实现了IDisposable,因此您的代码应该有效。

如果它不起作用,您应该收到编译时错误。