Nelle mie lezioni implemento IDisposable come segue:
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;
}
}
In VS2012, la mia analisi del codice dice di implementare IDisposable correttamente, ma non sono sicuro di cosa ho fatto di sbagliato qui.
Il testo esatto è il seguente:
CA1063 Implementare IDisposable correttamente Fornire un'implementazione scavalcabile di Dispose (bool) su 'Utente' o contrassegnare il tipo come sigillato. Una chiamata a Dispose (false) dovrebbe solo ripulire le risorse native. Una chiamata a Dispose (true) dovrebbe ripulire sia le risorse gestite che quelle native. stman User.cs 10
Per riferimento: CA1063: Implementare IDisposable correttamente
Ho letto questa pagina, ma temo di non capire davvero cosa debba essere fatto qui.
Se qualcuno può spiegare in termini più lusinghieri quale sia il problema e / o come debba essere implementato IDisposable, questo sarà di grande aiuto!
IDispoable
se si dispone di risorse non gestite da smaltire (questo include risorse non gestite che vengono avvolti ( SqlConnection
, FileStream
, etc.). Non si e non si deve applicare IDisposable
se solo riusciti risorse come qui. Questo è, IMO, un grosso problema con l'analisi del codice. È molto bravo a controllare le stupide piccole regole, ma non è bravo a controllare gli errori concettuali.
Dispose
?