私のクラスでは、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を正しく実装する 'User'でDispose(bool)のオーバーライド可能な実装を提供するか、型をシール済みとしてマークします。Dispose(false)を呼び出すと、ネイティブリソースのみがクリーンアップされます。Dispose(true)を呼び出すと、マネージリソースとネイティブリソースの両方がクリーンアップされます。stman User.cs 10
私はこのページを読みましたが、ここで何をする必要があるのか本当にわかりません。
問題が何であるか、および/またはIDisposableをどのように実装する必要があるかについて、より多くの言葉で誰かが説明できれば、それは本当に役立ちます!
IDispoable
破棄するアンマネージリソースがある場合にのみ実装する必要があります(これにはSqlConnection
、ラップされたアンマネージリソース(、、FileStream
など)が含まれます。ここにあるようなマネージリソースのみがある場合は実装しないでくださいIDisposable
。これはIMO、コード分析の主要な問題それは他愛ないルールを確認するには非常に良いですが、。ない概念的なエラーをチェックするのが得意。
Dispose
ですか?