Да, то, что вы делаете в примере, прекрасно.
Переменная object1
- это просто ссылка на объект типа Foo
.После первого присваивания new
это относится к одному конкретному экземпляру Foo
;после второго new
присваивания он ссылается на совершенно другой экземпляр (и исходный экземпляр становится пригодным для сборки мусора, при условии, что на него больше ничего не ссылается).
И да, если Foo
реализует IDisposable
тогда вы должны утилизировать его, предпочтительно с помощью блока using
, хотя я лично предпочитаю использовать отдельные using
переменные для каждого блока:
using (Foo first = new Foo())
{
// do something
}
using (Foo second = new Foo())
{
// do something else
}