【发布时间】:2015-04-13 13:39:52
【问题描述】:
我最近一直在阅读 IDisposable 接口(这个主题非常有用 Proper use of the IDisposable interface)以及 using 语句的用法(主题 Uses of "using" in C#)。然后我开始想如果我应该以某种方式从内存中释放我自己的集合类会怎样。
class User{
private string username {set;get;}
private string password {set;get;}
...
}
是否应该实现IDisposable接口?
class User : IDisposable
{
...
public void Dispose()
{
this.Dispose();
}
}
所以它可以从内存中释放出来?还是 GC 会自动执行它,我什至不应该为此烦恼。
据我了解,释放非托管资源(如数据库连接等)很重要,但那些集合类又如何呢?由于我经常使用它们,这真的开始困扰我了。
tl;dr; 我应该在 User 类上实现 IDisposable 吗?
亲切的问候。
编辑:感谢大家的回复!
【问题讨论】:
-
只有当你的类分配非托管资源和/或有
IDisposable类成员时,你才需要实现IDisposable。所以,在你的情况下,答案是“否”,你不需要让这个类一次性。
标签: c# memory garbage-collection dispose idisposable