1 / 1 / 0
Регистрация: 24.08.2012
Сообщений: 30
|
||||||
1 | ||||||
Не работает деструктор, и вообще, нужен ли он29.08.2012, 14:57. Показов 1603. Ответов 3
Метки нет (Все метки)
Написал простой класс для записи в файл. Мне это нужно чтобы вести лог работы программы. Закрытие потока засунул в деструктор, но он не срабатывает. Выбрасывается исключение "не был закрыт поток записи (или что то типа того)". В итоге мне приходится явно вызывать метод close(). Как быть?
Исключение выбрасывается в конце работы программы (консольное приложение). Я слышал что в С# сборщик мусора и вроде как сам всё должен собирать
0
|
29.08.2012, 14:57 | |
Ответы с готовыми решениями:
3
Нужен ли деструктор? нужен ли свой деструктор Нужен ли в программе деструктор Зачем нужен virtual деструктор? |
8 / 9 / 1
Регистрация: 21.08.2012
Сообщений: 34
|
|
29.08.2012, 15:25 | 2 |
Это Вам не С++. Время вызова деструктора выбирается самой средой CLR, мы на это влиять не можем и не можем знать соответственно, когда он будет вызван. Он может никогда не вызваться... Так что только явно. Либо можете реализовать IDisposable и обернуть внешний код в using() {}
1
|
1 / 1 / 0
Регистрация: 24.08.2012
Сообщений: 30
|
|
29.08.2012, 15:30 [ТС] | 3 |
ок, ясно. только одно не понятно: зачем эти деструкторы тогда вообще. смысл же в том чтобы освобождать память и т.п. пишешь туда всё и не паришься когда вызывать, как ссылок не осталось - вызвался.
0
|
8 / 9 / 1
Регистрация: 21.08.2012
Сообщений: 34
|
|
29.08.2012, 15:33 | 4 |
Ну, так уж платформа устроена. А по поводу применимости деструкторов, тут лучше книжку почитать - там подробно написано.
0
|
29.08.2012, 15:33 | |
29.08.2012, 15:33 | |
Помогаю со студенческими работами здесь
4
Виртуальный деструктор, для чего нужен? Надо понять правильно работает код или нет. И работает ли он вообще Мышка работает через раз, иногда вообще не работает Не работает панель задач, и вообще, много что не работает Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |