Это почти бесполезно. Я полагаю, что установка NULL в старые дни COM / VB уменьшит ваш счетчик ссылок.
Это не так с .NET. Когда вы устанавливаете bar в null, вы ничего не разрушаете и не выпускаете. Вы просто меняете ссылку, на которую указывает панель, с вашего объекта на «ноль». Ваш объект все еще существует (хотя сейчас, так как к нему ничего не относится, он, в конечном счете, будет собирать мусор). За редкими исключениями, и в большинстве случаев это то же самое, что произошло бы, если бы вы просто не сделали Foo IDisposable во-первых.
Основная цель IDisposable - позволить вам высвобождать неуправляемых ресурсов, таких как сокеты TCP или соединения SQL, или что-либо еще. Обычно это делается путем вызова любой функции очистки, которую предоставляет неуправляемый ресурс, а не путем задания ссылки на «null».