📄 class1.cs
字号:
using System;
namespace GCgens
{
public class Thing : IDisposable
{
private string name;
public Thing(string name) { this.name = name; }
override public string ToString() { return name; }
~Thing()
{
Dispose();
Console.WriteLine("~Thing(): " +name);
}
public void Dispose()
{
// Console.WriteLine("Dispose(): " +name);
GC.SuppressFinalize(this);
}
}
public class GCgensApp
{
[STAThread]
public static void Main(string[] args)
{
Console.WriteLine(
"Highest Generation Supported: "
+GC.MaxGeneration);
DoSomething();
}
public static void DoSomething()
{
Thing[] ta = new Thing[3];
Console.WriteLine("\nAllocating objects...");
for (int i = 0; i < 3; i++)
{
ta[i] = new Thing(
String.Format("object #" +i));
Console.WriteLine("object {0}, GC Generation = {1}",
i+1, GC.GetGeneration(ta[i]));
}
GC.Collect();
GC.WaitForPendingFinalizers();
Console.WriteLine("\nDisposing objects...");
for (int i = 0; i < 3; i++)
{
Console.WriteLine("object {0}, GC Generation = {1}",
i+1, GC.GetGeneration(ta[i]));
ta[i].Dispose();
ta[i] = null;
GC.Collect();
GC.WaitForPendingFinalizers();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -