IDisposable界面是在C#.NET中释放Unmonaged资源。
IDisposable接口用于释放非托管资源。
此框架将在检测到对象不再需要的时候马上删除并自动释放内存。
当不再使用该对象时,垃圾收集器会自动释放分配给托管对象的内存,只有一个名为Dispose的单个成员。
当对象需要释放时调用此方法。
.NET IDisposable接口示例
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using System.Drawing.Printing;
public class dispo
{
public static void Main()
{
textfile1 textfile = new textfile1("c:\demo.txt");
textfile.insertvalue("IDisposable示例");
textfile.Dispose();
textfile = null;
Console.WriteLine("按回车回收垃圾");
GC.Collect();
Console.WriteLine("按回车退出");
Console.ReadLine();
}
}
public class textfile1 : IDisposable
{
private FileStream str;
private bool id;
public textfile1(string filename)
{
str = new FileStream("test.txt", FileMode.OpenOrCreate);
Console.WriteLine("Object " + GetHashCode() + " created.");
Console.WriteLine("Using file: " + filename);
}
public void insertvalue(string buf)
{
if (id == true)
{
throw new ObjectDisposedException("已处理过");
}
StreamWriter wr = new StreamWriter(str);
wr.WriteLine(System.DateTime.Now);
wr.WriteLine(buf);
wr.Close();
}
public void Dispose()
{
if (id == true)
return;
str.Close();
str = null;
id = true;
GC.SuppressFinalize(this);
Console.WriteLine("Object " + GetHashCode() + " disposed.");
}
}
日期:2020-04-11 23:03:40 来源:oir作者:oir
