.NET: Расположение объекта HashAlgorithm

попробуйте подстроку ({ваше поле}, 1,1)

5
задан core 17 April 2009 в 18:34
поделиться

3 ответа

С помощью Reflector метод Clear из HashAlgorithm просто вызывает частный метод Dispose . Причина раскрытия метода с именем Clear , вероятно, заключалась лишь в том, что разработчики класса думали, что это будет более подходящее имя для алгоритма хеширования. Вы видите похожие стили в других частях BCL, таких как Close для System.IO.Stream . Кроме того, в данном случае рекомендуется использовать блок с использованием блока , который автоматически вызовет закрытый метод Dispose после его завершения.

3
ответ дан 14 December 2019 в 01:16
поделиться

Вы должны позволить GC справиться с этим за вас. Это его работа.

Некоторые ресурсы должны быть удалены, например, соединения с БД и дескрипторы файлов, поэтому поместите их в , используя блок (C #). Однако это не один из тех случаев.

-5
ответ дан 14 December 2019 в 01:16
поделиться

Хотя метод Dipose () является закрытым, если вы приведете его к IDisposable Вы можете получить к нему доступ. Однако, как уже говорили другие, Clear () вызовет его для вас.

Однако, лучший подход - заключить объявление и присвоение переменной в блок using ():

byte[] hashCode;

using(var hasher = new MD5CryptoServiceProvider())
{
    hashCode = hasher.ComputeHash(data);
}
11
ответ дан 14 December 2019 в 01:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: