在我的课程中,我实现IDisposable的方式如下:
public class User : IDisposable
{
public int id { get; protected set; }
public string name { get; protected set; }
public string pass { get; protected set; }
public User(int UserID)
{
id = UserID;
}
public User(string Username, string Password)
{
name = Username;
pass = Password;
}
// Other functions go here...
public void Dispose()
{
// Clear all property values that maybe have been set
// when the class was instantiated
id = 0;
name = String.Empty;
pass = String.Empty;
}
}
在VS2012中,我的代码分析说要正确实现IDisposable,但我不确定在这里做错了什么。
确切的文本如下:
CA1063正确实施IDisposable可在“用户”上提供Dispose(bool)的可重写实现,或将类型标记为密封。调用Dispose(false)仅应清除本机资源。调用Dispose(true)应该同时清除托管资源和本机资源。stman User.cs 10
我已经通读了此页面,但是恐怕我不太了解在这里需要做什么。
如果任何人都可以用更深刻的解释来解释问题是什么和/或应该如何实现IDisposable,那将真的有帮助!
IDispoable
,如果你有非托管资源的处置(包括那些被包装(非托管资源SqlConnection
,FileStream
等等)。你不和不应该执行IDisposable
,如果你只有管理资源,如在这里。这是,海事组织,代码分析的一个主要问题,非常擅长检查愚蠢的小规则,但不擅长检查概念错误
Dispose
吗?