Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2015, 10:04   #1
ts-alan
Форумчанин
 
Регистрация: 07.07.2010
Сообщений: 825
Смех Dispose controller-а -

В контроллера есть метод dispose() с двумя перегрузками.Пониманию что они срабатываеют в конце http-запроса вопросы следущие
1)Зачем эти две перегрузки
2)Видел переопредление метода
Код:
protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                db.Dispose();
            }
            base.Dispose(disposing);
        }
не могу понять кто передаёт сюда параметр true-false
3)Переопрелённая версия вызывает base.Dispose(disposing) зачем туда передавать параметр,мы же знаем что он освободит только управляемы ресурсы,почему не вызвать перегрузку dispose
ts-alan вне форума Ответить с цитированием
Старый 12.11.2015, 10:10   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

https://www.google.com/search?q=dispose+pattern
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.11.2015, 10:57   #3
ts-alan
Форумчанин
 
Регистрация: 07.07.2010
Сообщений: 825
По умолчанию

Что к чему?Даже в тех ссылках нет ответа))
ts-alan вне форума Ответить с цитированием
Старый 12.11.2015, 11:26   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
3)Переопрелённая версия вызывает base.Dispose(disposing) зачем туда передавать параметр
чтоб тот метод знал что происходит. странный вопрос, вообще не ожидал от программиста услышать такое...вы бы еще спросили зачем в new StreamReader(string) передавать путь.
Цитата:
мы же знаем что он освободит только управляемы ресурсы
ничего мы не знаем что он там делает, и неуправляемые ресурсы тоже освобождаются при необходимости.
Цитата:
почему не вызвать перегрузку dispose
вообще-то вы рекурсию тогда создадите.
да и паттерн такой.
Цитата:
1)Зачем эти две перегрузки
одна внешний интерфейс, которая определяет что надо сделать(например на основе того был ли уже вызван dispose или нет) и передает это второму методу.
который уже по цепочке наследования, все делает что надо.
Цитата:
не могу понять кто передаёт сюда параметр true-false
тот кто вызывает этот метод...очевидно же.
часто это сам Dispose(), но бывают и иные случаи.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.11.2015, 13:45   #5
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Цитата:
мы же знаем что он освободит только управляемы ресурсы
никакие управляемые он не освободит, вы все еще не понимаете сути [не]управляемых ресурсов.
come-on вне форума Ответить с цитированием
Старый 12.11.2015, 14:39   #6
ts-alan
Форумчанин
 
Регистрация: 07.07.2010
Сообщений: 825
По умолчанию

Цитата:
никакие управляемые он не освободит, вы все еще не понимаете сути [не]управляемых ресурсов.
ты её тоже не понимаешь,так что мы квиты
Цитата:
тот кто вызывает этот метод...очевидно же.
часто это сам Dispose(), но бывают и иные случаи.
кто ещё может вызвать?
посмотрел внутреннюю реализацию метода dispose не понял зачем в это паттерне
Цитата:
protected override void Dispose(bool disposing)
{
if (disposing)
{
db.Dispose();
}
base.Dispose(disposing);
}
вызывавть base.Dispose(disposing); когда внутренняя реализация вообще ничего не содержит
Цитата:
protected virtual void Dispose(bool disposing)
{
}

Последний раз редактировалось ts-alan; 12.11.2015 в 14:53.
ts-alan вне форума Ответить с цитированием
Старый 12.11.2015, 14:59   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
вызывавть base.Dispose(disposing); когда внутренняя реализация вообще ничего не содержит
потому что лучше всегда вызывать цепочку до конца, чем полагаться на исключение.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.11.2015, 15:45   #8
ts-alan
Форумчанин
 
Регистрация: 07.07.2010
Сообщений: 825
Сообщение

Цитата:
потому что лучше всегда вызывать цепочку до конца, чем полагаться на исключение.
если он пустой- то о каком освобождении управляемых ресурсах идёт речь?
ts-alan вне форума Ответить с цитированием
Старый 12.11.2015, 15:47   #9
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Цитата:
о каком освобождении управляемых ресурсах идёт речь?
Ни о каком речи нет в принципе, не важно пустой диспозе или нет.
come-on вне форума Ответить с цитированием
Старый 12.11.2015, 15:59   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

пишите что хотите в своем коде, но не показывайте его никому.

есть принципы, и их стоит соблюдать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Controller vs web api ts-alan ASP.NET 0 16.06.2015 12:16
метод dispose ts-alan C# (си шарп) 1 25.04.2015 17:35
M-V-VM (WPF) и controller boundless2012 WPF, UWP, WinRT, XAML 0 17.12.2012 10:34
не работает dispose MYriad Помощь студентам 1 02.10.2011 14:19
MVC. Controller test Jakethefish Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC) 0 22.06.2010 12:43