如何找出一个类创建了多少个对象
如何在C#中找出一个类创建了多少个对象?
您必须在构造中增加一个静态计数器:
public class Foo { private static long instanceCount; public Foo() { // Increment in atomic and thread-safe manner Interlocked.Increment(ref instanceCount); } }
几个笔记:
- 这不计算当前内存实例的数量 – 这将涉及使用终结器来递减计数器; 我不建议这样做
- 这不包括通过序列化等可能绕过构造函数的某些机制创建的实例
- 显然这只有在你修改课程时才有效; 例如,你无法找到创建的
System.String
实例的数量 – 至少在没有挂钩调试/分析API的情况下
为什么您不想要这些信息呢?
这是你设计的课程吗?
如果是这样,请在类中添加一个计数器,该计数器在构造函数中递增并在Dispose中递减。
您可以将其设置为性能计数器,以便在性能监视器中对其进行跟踪。
- 如何修复TcpClient Ip Header Bad Checksum
- KendoUI级联下拉列表,需要2个下拉列表的值。
- TFS 2010:当我可以使用XamlReader进行反序列化时,为什么无法使用XamlWriter.Save反序列化Dictionary
- 从Mediafire.com获取直接下载链接和文件站点
- Automapper创建新实例而不是地图属性
- 如何将文件合并到单个可执行文件或减少分布式文件的数量
- WPF MediaElement应用程序的播放列表
- AsyncWaitHandle.WaitOne阻止CLR线程吗? 或者它是否创建了I / O完成端口?
- 如何在Unity Editor Script中将Persistent Listener添加到Button.onClick事件