using 关键字有什么用? 什么是IDisposable?
时间: 2023-05-22 20:06:33 浏览: 250
using 关键字主要用于管理 IDisposable 实例的生命周期,以确保在使用完 IDisposable 实例之后正确释放资源。例如:
using (var stream = new FileStream("file.txt", FileMode.Open))
{
// 在此处使用 stream
} // 在此处自动释放 stream 的资源
IDisposable 接口是一个标记性接口,表示该对象需要手动管理资源释放。当一个对象实现了 IDisposable 接口时,它必须实现 Dispose() 方法来释放资源,否则就会造成资源泄漏。通常使用 using 语句块来确保在使用对象后释放资源。例如:
public class MyClass : IDisposable
{
private bool disposed = false;
// 实现 IDisposable 接口
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (!disposed)
{
if (disposing)
{
// 释放托管资源
}
// 释放非托管资源
disposed = true;
}
}
// 析构函数
~MyClass()
{
Dispose(false);
}
}
阅读全文