Я не сомневаюсь, что решарпер может многое, что еще не умеет студия, и этим исследованием я занялся не от «хорошей жизни».
Начал со сравнения навигации: судя по всему можно жить. Теперь я продолжу сравнивать другие фичи, которые используется в моей команде.
А как же все эти трюки, что таймер (созданный в main) запущенный в DEBUG режиме работает до конца программы, но в RELEASE режиме умирает довольно быстро?
Не понимаю: я проверяю, что Dispose, когда он вызывается «закрывает» ресурс. С другой стороны, я проверяю, что когда Dispose не вызывается, то финализатор «закрывает» ресурс. Где тут дублирование, с учетом, что это не совсем unit тест?
По крайней мере в тех случаях, когда финализатор вызывается, я буду уверен, что он делает то, что я от него ожидаю.
И как я понимаю, в подавляющем числе случаев он все таки вызывается.
Согласен на все 100%. Но никто не может мне гарантировать, что Dispose всегда будет вызываться. Следовательно, небольшое усилие (финализатор и его тест), по крайне мере, минимизуруют ущерб от не вызова Dispose.
в общем случае может быть, но в моем конкретном случае, несколько раз случались проблемы из за того, что ресурс не был освобожден, а тесты этого даже и не проверяли.
в любом случае идея этого поста: как тестировать финализатор, когда это надо.
да, в таком случае этот способо гораздо более прост.
кстати, ведь не советуют вызывать GC.Collect(); или GC.WaitForPendingFinalizers();
утверждают, что это все равно только просьба к сборщику мусора, а когда он на самом деле захочет делать работу неизвестно.
или запутывают?
Начал со сравнения навигации: судя по всему можно жить. Теперь я продолжу сравнивать другие фичи, которые используется в моей команде.
Надо попробовать реализовать unit тест для данного примера.
Спасибо.
И как я понимаю, в подавляющем числе случаев он все таки вызывается.
Ведь если нет ссылки на объект, то вроде бы зачем присваивать null?
Спасибо!
В любом случае, таких тестов (для финализатора) не так много.
в любом случае идея этого поста: как тестировать финализатор, когда это надо.
рука отказалось такое писать :).
да, в таком случае этот способо гораздо более прост.
кстати, ведь не советуют вызывать GC.Collect(); или GC.WaitForPendingFinalizers();
утверждают, что это все равно только просьба к сборщику мусора, а когда он на самом деле захочет делать работу неизвестно.
или запутывают?