|
Exemple 11-32 extrait du chapitre Notions de classe et d'objet
Exemple 11-31< > Exemple 11-33
Cet exemple peut être compilé avec la ligne de commande: csc.exe /target:library Exemple_11_32.cs Erreurs: 0 Avertissements: 0 Remarque:
Exemple_11_32.cs
public class Article : System.IDisposable {
public int m_Prix;
public Article(int prix) { this.m_Prix = prix; }
private object m_SyncRootDisposed = new object();
private bool m_bDisposed = false;
public void Fct() {
lock ( m_SyncRootDisposed )
if ( m_bDisposed )
throw new System.ObjectDisposedException("Nom de l'objet");
// Ici le corps de Fct().
}
public void Dispose() {
bool bOldDisposedState = true;
lock ( m_SyncRootDisposed )
if ( !m_bDisposed ) {
bOldDisposedState = false;
m_bDisposed = true;
}
if (!bOldDisposedState ) {
// Ici libération des ressources.
}
}
}
Copyright Patrick Smacchia 2006 2007
|