| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Переприсвоение значения переменной |
| Автор: kin 11.11.2016, 16:02 | ||
| Здравствуйте Уважаемые! Суть вопроса в следующем: по условию задачи некоторая переменная в зависимости от условий может принимать значения базового класса или производных от него. Можно ли этот код считать нормальным, в частности, на предмет отсутствия различных потерянных ссылок и всяких там утечек памяти, и как это лучше сделать?
|
| Автор: a0730 13.11.2016, 18:04 |
| В С# мусор убирается автоматически, поэтому можно бросать объекты. Но там тоже есть проблемы связанные с освобождением неуправляемых ресурсов. Например, файлы, сокеты, соединения с базами данных и т.п. Так что, допустимость приведённого кода зависит от того, что делают классы. Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Pereprisvoyeniye-znacheniya-peremennoy-id5825c193b4c92c32a3153cc2#findElement_E7045_5828810c0ef42f1836745f5b_0 |
| Автор: a0730 13.11.2016, 18:04 |
| В С# мусор убирается автоматически, поэтому можно бросать объекты. Но там тоже есть проблемы связанные с освобождением неуправляемых ресурсов. Например, файлы, сокеты, соединения с базами данных и т.п. Так что, допустимость приведённого кода зависит от того, что делают классы. Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Pereprisvoyeniye-znacheniya-peremennoy-id5825c193b4c92c32a3153cc2#findElement_E7045_5828810c0ef42f1836745f5b_0 |
| Автор: a0730 13.11.2016, 18:04 |
| В С# мусор убирается автоматически, поэтому можно бросать объекты. Но там тоже есть проблемы связанные с освобождением неуправляемых ресурсов. Например, файлы, сокеты, соединения с базами данных и т.п. Так что, допустимость приведённого кода зависит от того, что делают классы. Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Pereprisvoyeniye-znacheniya-peremennoy-id5825c193b4c92c32a3153cc2#findElement_E7045_5828810c0ef42f1836745f5b_0 |
| Автор: a0730 13.11.2016, 18:04 |
| В С# мусор убирается автоматически, поэтому можно бросать объекты. Но там тоже есть проблемы связанные с освобождением неуправляемых ресурсов. Например, файлы, сокеты, соединения с базами данных и т.п. Так что, допустимость приведённого кода зависит от того, что делают классы. Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Pereprisvoyeniye-znacheniya-peremennoy-id5825c193b4c92c32a3153cc2#findElement_E7045_5828810c0ef42f1836745f5b_0 |
| Автор: a0730 13.11.2016, 18:04 |
| В С# мусор убирается автоматически, поэтому можно бросать объекты. Но там тоже есть проблемы связанные с освобождением неуправляемых ресурсов. Например, файлы, сокеты, соединения с базами данных и т.п. Так что, допустимость приведённого кода зависит от того, что делают классы. Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Pereprisvoyeniye-znacheniya-peremennoy-id5825c193b4c92c32a3153cc2#findElement_E7045_5828810c0ef42f1836745f5b_0 |
| Автор: chupachups 14.11.2016, 09:53 |
| Для избежания проблем с освобождением ресурсов необходимо корректно реализовать интерфейс IDisposible, а если еще добавить деструктор - то вообще все в шоколаде будет Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Pereprisvoyeniye-znacheniya-peremennoy-id5825c193b4c92c32a3153cc2#findElement_E7045_58295f5c0ef42f1ed87b2261_0 |
| Автор: chupachups 14.11.2016, 09:53 |
| Для избежания проблем с освобождением ресурсов необходимо корректно реализовать интерфейс IDisposible, а если еще добавить деструктор - то вообще все в шоколаде будет Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Pereprisvoyeniye-znacheniya-peremennoy-id5825c193b4c92c32a3153cc2#findElement_E7045_58295f5c0ef42f1ed87b2261_0 |
| Автор: chupachups 14.11.2016, 09:53 |
| Для избежания проблем с освобождением ресурсов необходимо корректно реализовать интерфейс IDisposible, а если еще добавить деструктор - то вообще все в шоколаде будет Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Pereprisvoyeniye-znacheniya-peremennoy-id5825c193b4c92c32a3153cc2#findElement_E7045_58295f5c0ef42f1ed87b2261_0 |
| Автор: chupachups 14.11.2016, 09:53 |
| Для избежания проблем с освобождением ресурсов необходимо корректно реализовать интерфейс IDisposible, а если еще добавить деструктор - то вообще все в шоколаде будет Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Pereprisvoyeniye-znacheniya-peremennoy-id5825c193b4c92c32a3153cc2#findElement_E7045_58295f5c0ef42f1ed87b2261_0 |
| Автор: chupachups 14.11.2016, 09:53 |
| Для избежания проблем с освобождением ресурсов необходимо корректно реализовать интерфейс IDisposible, а если еще добавить деструктор - то вообще все в шоколаде будет Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Pereprisvoyeniye-znacheniya-peremennoy-id5825c193b4c92c32a3153cc2#findElement_E7045_58295f5c0ef42f1ed87b2261_0 |