Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
делегаты
|
|||
|---|---|---|---|
|
#18+
skyANAВот MSDN: сигнатуры, классы, структуры. А вот МСУ: гвозди, коровы. Не туда смотришь, читай дальше: ...Это позволяет программно изменять вызовы метода, а также включать новый код в существующие классы. Вот он корень зла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 12:15 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
skyANAhVostt, не являются абстракцией? То есть если сигнатура метода определена в интерфейсе, то это абстракиця. А если делегатом, то нет? даю хинт. класс должен реализовывать конкретный требуемый интерфейс . в случае с делегатом никаких гарантий нет. свойству делегата типа void() можно подсунуть что угодно, лишь бы сигнатура совпадала. мало того, что это не безопасно, это вообще никак не разруливается. например, смотрим: требуется некий делегат void(). и что ему туда подать? че ему сунуть? че он хочет вообще? только хардкод! а в случае с интерфейсом это исключено в принципе. плюс резолверу хватает информации, чтобы выдать нужную реализацию. ну и про внезапно подчищенную из мусора ссылку я уже говорил. неопределённое поведение — самый адовый случай, за допущение которого положено отсекать причинные конечности остренькой линейкой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 12:16 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
hVostt, а например смотрим предложенный тобой код: Код: c# 1. 2. 3. В этом случае тебе понятно что ему туда подать? че ему сунуть? че он хочет вообще? Каким образом твой интерфейс исключает то, что я его не реализую так, что лишь бы сигнатура совпадала? Про внезапно подчищенную из мусора ссылку ты говорил. А слабо привести код, эмулирующий это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 12:22 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
МСУskyANAВот MSDN: сигнатуры, классы, структуры. А вот МСУ: гвозди, коровы. Не туда смотришь, читай дальше: ...Это позволяет программно изменять вызовы метода, а также включать новый код в существующие классы. Вот он корень зла.Ну давай, давай уже. Скажи в чём зло-то? Какие проблемы могут возникнуть? Сложный что-ли вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 12:24 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
skyANAВ этом случае тебе понятно что ему туда подать? че ему сунуть? че он хочет вообще? Каким образом твой интерфейс исключает то, что я его не реализую так, что лишь бы сигнатура совпадала? да реализуй ты его как хочешь. важно, что класс, не реализующий этот интерфейс ты туда ну никак не сунешь. плюс резолвер легко разрулит зависимость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 12:25 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
skyANAНу давай, давай уже. Скажи в чём зло-то? Какие проблемы могут возникнуть? Сложный что-ли вопрос? Какие проблемы могут возникнуть в прикладном коде с неопределенным поведением? Ну я понимаю, если бы этот вопрос мне задал сопливый второкурсник с дрожащими руками, держащие зачетку... Я тебе уже не один раз писал - делегатный хаос . Хаос - это не проблема? Какая может быть слабосвязность слоёв в хаосе, которые ты сеешь на каждом шагу? Задумайся об этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 12:34 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
hVostt, хорошо. На этом и закончим. Код, эмулирующий подчищенную из мусора ссылку, можешь накидать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 12:35 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
skyANA, Delegate / MulticastDelegate / ... - это всё так или иначе - реализации (классы). Коим не место в слабосвязной архитектуре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 12:37 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
МСУskyANAНу давай, давай уже. Скажи в чём зло-то? Какие проблемы могут возникнуть? Сложный что-ли вопрос? Какие проблемы могут возникнуть в прикладном коде с неопределенным поведением? Ну я понимаю, если бы этот вопрос мне задал сопливый второкурсник с дрожащими руками, держащие зачетку... Я тебе уже не один раз писал - делегатный хаос . Хаос - это не проблема? Какая может быть слабосвязность слоёв в хаосе, которые ты сеешь на каждом шагу? Задумайся об этом.Вот любишь ты на личности переходить и флуд разводить вместо того, чтобы по существу на вопрос ответить. Это форум, тебе сложно написать внятный ответ, чтобы и сопливый второкурсник с дрожащими руками, держащие зачетку его понял? Видимо да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 12:43 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
МСУskyANA, Delegate / MulticastDelegate / ... - это всё так или иначе - реализации (классы). Коим не место в слабосвязной архитектуре.Дак и в случае с интерфейсом мы так или иначе ссылаемся на конкретную реализацию. Или о чём ты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 12:51 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
МСУ, ты же сам цитировал MSDN: "делегату можно назначить любой метод из любого доступного класса или структуры, соответствующий сигнатуре делегата". Как это коррелирует с твоим же: "реализация, прибитая гвоздями"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 12:53 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
skyANAВот любишь ты на личности переходить и флуд разводить вместо того, чтобы по существу на вопрос ответить. Когда я (и не только я) тебе раз 10 по существу уже ответил, что ж остается, как ни флудить и бросаться какашками. Это жизнь, коллега. По-другому никак :) skyANAЭто форум, тебе сложно написать внятный ответ, чтобы и сопливый второкурсник с дрожащими руками, держащие зачетку его понял? Видимо да. Ну написал же, википедию цитировал и разжевывал, буквари цитировал и разжевывал, на коровах примеры приводил, ... Остаётся только извлечь твой моск, инжектировать (IoC) в него понимание сути делегатов в слабосвязных системах, вкорячить обратно. Другого пути я пока не знаю. Может, кто подскажет варианты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 12:55 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
skyANAМСУskyANA, Delegate / MulticastDelegate / ... - это всё так или иначе - реализации (классы). Коим не место в слабосвязной архитектуре.Дак и в случае с интерфейсом мы так или иначе ссылаемся на конкретную реализацию. Или о чём ты? Сдурел что-ли? В случае с интерфейсом мы ссылаемся только на абстракцию ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 12:56 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
МСУ, не льсти себе, лично ты по существу ничего не сказал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 12:57 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
МСУskyANAпропущено... Дак и в случае с интерфейсом мы так или иначе ссылаемся на конкретную реализацию. Или о чём ты? Сдурел что-ли? В случае с интерфейсом мы ссылаемся только на абстракцию !Так. Походу мы о разных вещах. Пример кода приведи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 12:59 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
skyANAМСУ, ты же сам цитировал MSDN: "делегату можно назначить любой метод из любого доступного класса или структуры, соответствующий сигнатуре делегата". Как это коррелирует с твоим же: "реализация, прибитая гвоздями"? Самым прямым способом это коррелирует. Я же приводил пример с коровой. Мой код работает с животными, твой код работает с коровой. Если потребуется мне работать со свиньей, я без проблем инжектирую свинюшку через контейнер и у меня всё будет работать (уши, голова, хвост). Если тебе потребуется работать со свинюшкой, о твоей "новинке" узнают все подписчики объекта (asp.net, winforms, прикладной код, все на планете). Разницу улавливаешь? P.S. Может таки тебе почитать про IoC и DI? На лицо полное непонимание сути... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 13:00 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
skyANAМСУ, не льсти себе, лично ты по существу ничего не сказал. Действительно. О том же думает и корова, которой я прочитал Есенина... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 13:01 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
skyANAМСУпропущено... Сдурел что-ли? В случае с интерфейсом мы ссылаемся только на абстракцию !Так. Походу мы о разных вещах. Пример кода приведи. Пецдец, товарещ. Приплыли Пример с картинками и кодом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 13:02 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
МСУskyANAМСУ, ты же сам цитировал MSDN: "делегату можно назначить любой метод из любого доступного класса или структуры, соответствующий сигнатуре делегата". Как это коррелирует с твоим же: "реализация, прибитая гвоздями"? Самым прямым способом это коррелирует. Я же приводил пример с коровой. Мой код работает с животными, твой код работает с коровой. Если потребуется мне работать со свиньей, я без проблем инжектирую свинюшку через контейнер и у меня всё будет работать (уши, голова, хвост). Если тебе потребуется работать со свинюшкой, о твоей "новинке" узнают все подписчики объекта (asp.net, winforms, прикладной код, все на планете). Разницу улавливаешь? P.S. Может таки тебе почитать про IoC и DI? На лицо полное непонимание сути...Согласен. Я тебя вообще не понимаю. Я приводил пример кода. Что ты там называешь коровой? Приведи свой пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 13:03 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
skyANAСогласен. Я тебя вообще не понимаю. Я приводил пример кода. Что ты там называешь коровой? Приведи свой пример. Ну вот, разрулили. Давай тогда без примеров и прочих запудриваний. Просто берешь, открываешь букварь, читаешь и вникаешь. Пробуешь на практике с ASP.NET MVC, там всё есть для работы с инверсией виде DI контейнера (честный простенький резолвер IDependencyResolver или жирная мощная фабрика IControllerFactory). Начни с первого. Когда будешь понимать, о чем тебе тут досаждают, возвращайся, продолжим спич. А пока не вижу смысла продолжать беседу. По рукам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 13:08 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
skyANAКод, эмулирующий подчищенную из мусора ссылку, можешь накидать? таки нет. здесь я не прав. по крайне мере что касается контекста потока исполнения. делегат таки хранит ссылку. освежевал немного Рихтера. пережитки С++ дают о себе знать этот пункт можно вычёркивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 13:08 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
Ладно, сам перепишу свой код, спользуя магию DI: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. В момент вызова Confirm() наш инжектированный confirmer ссылается на конкретную реализацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 13:10 |
|
||
|
делегаты
|
|||
|---|---|---|---|
|
#18+
МСУskyANAСогласен. Я тебя вообще не понимаю. Я приводил пример кода. Что ты там называешь коровой? Приведи свой пример. Ну вот, разрулили. Давай тогда без примеров и прочих запудриваний. Просто берешь, открываешь букварь, читаешь и вникаешь. Пробуешь на практике с ASP.NET MVC, там всё есть для работы с инверсией виде DI контейнера (честный простенький резолвер IDependencyResolver или жирная мощная фабрика IControllerFactory). Начни с первого. Когда будешь понимать, о чем тебе тут досаждают, возвращайся, продолжим спич. А пока не вижу смысла продолжать беседу. По рукам?Повторю: не льсти себе. DI я использую с завидной регулярностью. Но это мне никак не помогает понять тебя. Ты опять съехал на личности, вместо ответа по существу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 13:12 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38457657&tid=1357970]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 412ms |

| 0 / 0 |
