Salut tout le monde,

Je me pose une question quand à la meilleure méthode à utiliser.

Voici trois codes qui pour moi font la même chose


Code avec IDispose:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
public class Essai :IDisposable
{
    private SHA1CryptoServiceProvider m_sha1=null;
 
    byte[] ICryptage.CreerHash(SecureString source)
    {
       //Utilisation de m_sha1
    }
 
    public void Dispose(Boolean disposing)
    {
                    if (m_sha1 != null)
                    {
                        m_sha1.Clear();
                        m_sha1 = null;
                    }
    }            
}
Code avec using:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
public class Essai 
{
    byte[] ICryptage.CreerHash(SecureString source)
    {
       using (SHA1CryptoServiceProvider m_sha1 = new SHA1CryptoServiceProvider ())
       {
       //Utilisation de m_sha1
       }
    }         
}
code avec try finally:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
public class Essai 
{
    byte[] ICryptage.CreerHash(SecureString source)
    {
      SHA1CryptoServiceProvider m_sha1 = new SHA1CryptoServiceProvider ();
      try
      {
        //utilisation de SHA1CryptoServiceProvider 
      }
      finally
      {
        m_sha1.Clear();
        m_sha1 = null;
      }
    }         
}
Quel est le meilleur ?
Quand est ce que je dois utiliser l'un ou l'autre ?