powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / делегаты
25 сообщений из 152, страница 4 из 7
делегаты
    #38457642
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВот MSDN: сигнатуры, классы, структуры. А вот МСУ: гвозди, коровы.
Не туда смотришь, читай дальше:

...Это позволяет программно изменять вызовы метода, а также включать новый код в существующие классы.

Вот он корень зла.
...
Рейтинг: 0 / 0
делегаты
    #38457645
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhVostt, не являются абстракцией? То есть если сигнатура метода определена в интерфейсе, то это абстракиця. А если делегатом, то нет?

даю хинт. класс должен реализовывать конкретный требуемый интерфейс . в случае с делегатом никаких гарантий нет.

свойству делегата типа void() можно подсунуть что угодно, лишь бы сигнатура совпадала. мало того, что это не безопасно, это вообще никак не разруливается. например, смотрим: требуется некий делегат void(). и что ему туда подать? че ему сунуть? че он хочет вообще? только хардкод! а в случае с интерфейсом это исключено в принципе. плюс резолверу хватает информации, чтобы выдать нужную реализацию.

ну и про внезапно подчищенную из мусора ссылку я уже говорил. неопределённое поведение — самый адовый случай, за допущение которого положено отсекать причинные конечности остренькой линейкой
...
Рейтинг: 0 / 0
делегаты
    #38457652
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA, какие еще способы знаешь?







...
Рейтинг: 0 / 0
делегаты
    #38457653
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt, а например смотрим предложенный тобой код:
Код: c#
1.
2.
3.
IUserConfirmator {
   void ConfirmUserPassword();
}

В этом случае тебе понятно что ему туда подать? че ему сунуть? че он хочет вообще?
Каким образом твой интерфейс исключает то, что я его не реализую так, что лишь бы сигнатура совпадала?

Про внезапно подчищенную из мусора ссылку ты говорил. А слабо привести код, эмулирующий это?
...
Рейтинг: 0 / 0
делегаты
    #38457657
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУskyANAВот MSDN: сигнатуры, классы, структуры. А вот МСУ: гвозди, коровы.
Не туда смотришь, читай дальше:

...Это позволяет программно изменять вызовы метода, а также включать новый код в существующие классы.

Вот он корень зла.Ну давай, давай уже. Скажи в чём зло-то? Какие проблемы могут возникнуть? Сложный что-ли вопрос?
...
Рейтинг: 0 / 0
делегаты
    #38457661
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВ этом случае тебе понятно что ему туда подать? че ему сунуть? че он хочет вообще?
Каким образом твой интерфейс исключает то, что я его не реализую так, что лишь бы сигнатура совпадала?

да реализуй ты его как хочешь. важно, что класс, не реализующий этот интерфейс ты туда ну никак не сунешь. плюс резолвер легко разрулит зависимость.
...
Рейтинг: 0 / 0
делегаты
    #38457678
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНу давай, давай уже. Скажи в чём зло-то? Какие проблемы могут возникнуть? Сложный что-ли вопрос?
Какие проблемы могут возникнуть в прикладном коде с неопределенным поведением? Ну я понимаю, если бы этот вопрос мне задал сопливый второкурсник с дрожащими руками, держащие зачетку... Я тебе уже не один раз писал - делегатный хаос . Хаос - это не проблема? Какая может быть слабосвязность слоёв в хаосе, которые ты сеешь на каждом шагу? Задумайся об этом.
...
Рейтинг: 0 / 0
делегаты
    #38457680
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt, хорошо. На этом и закончим. Код, эмулирующий подчищенную из мусора ссылку, можешь накидать?
...
Рейтинг: 0 / 0
делегаты
    #38457684
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA, Delegate / MulticastDelegate / ... - это всё так или иначе - реализации (классы). Коим не место в слабосвязной архитектуре.
...
Рейтинг: 0 / 0
делегаты
    #38457694
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУskyANAНу давай, давай уже. Скажи в чём зло-то? Какие проблемы могут возникнуть? Сложный что-ли вопрос?
Какие проблемы могут возникнуть в прикладном коде с неопределенным поведением? Ну я понимаю, если бы этот вопрос мне задал сопливый второкурсник с дрожащими руками, держащие зачетку... Я тебе уже не один раз писал - делегатный хаос . Хаос - это не проблема? Какая может быть слабосвязность слоёв в хаосе, которые ты сеешь на каждом шагу? Задумайся об этом.Вот любишь ты на личности переходить и флуд разводить вместо того, чтобы по существу на вопрос ответить.
Это форум, тебе сложно написать внятный ответ, чтобы и сопливый второкурсник с дрожащими руками, держащие зачетку его понял? Видимо да.
...
Рейтинг: 0 / 0
делегаты
    #38457710
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУskyANA, Delegate / MulticastDelegate / ... - это всё так или иначе - реализации (классы). Коим не место в слабосвязной архитектуре.Дак и в случае с интерфейсом мы так или иначе ссылаемся на конкретную реализацию. Или о чём ты?
...
Рейтинг: 0 / 0
делегаты
    #38457717
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, ты же сам цитировал MSDN: "делегату можно назначить любой метод из любого доступного класса или структуры, соответствующий сигнатуре делегата".
Как это коррелирует с твоим же: "реализация, прибитая гвоздями"?
...
Рейтинг: 0 / 0
делегаты
    #38457718
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВот любишь ты на личности переходить и флуд разводить вместо того, чтобы по существу на вопрос ответить.
Когда я (и не только я) тебе раз 10 по существу уже ответил, что ж остается, как ни флудить и бросаться какашками. Это жизнь, коллега. По-другому никак :)

skyANAЭто форум, тебе сложно написать внятный ответ, чтобы и сопливый второкурсник с дрожащими руками, держащие зачетку его понял? Видимо да.
Ну написал же, википедию цитировал и разжевывал, буквари цитировал и разжевывал, на коровах примеры приводил, ... Остаётся только извлечь твой моск, инжектировать (IoC) в него понимание сути делегатов в слабосвязных системах, вкорячить обратно. Другого пути я пока не знаю. Может, кто подскажет варианты...
...
Рейтинг: 0 / 0
делегаты
    #38457721
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAМСУskyANA, Delegate / MulticastDelegate / ... - это всё так или иначе - реализации (классы). Коим не место в слабосвязной архитектуре.Дак и в случае с интерфейсом мы так или иначе ссылаемся на конкретную реализацию. Или о чём ты?
Сдурел что-ли? В случае с интерфейсом мы ссылаемся только на абстракцию !
...
Рейтинг: 0 / 0
делегаты
    #38457724
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, не льсти себе, лично ты по существу ничего не сказал.
...
Рейтинг: 0 / 0
делегаты
    #38457732
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУskyANAпропущено...
Дак и в случае с интерфейсом мы так или иначе ссылаемся на конкретную реализацию. Или о чём ты?
Сдурел что-ли? В случае с интерфейсом мы ссылаемся только на абстракцию !Так. Походу мы о разных вещах. Пример кода приведи.
...
Рейтинг: 0 / 0
делегаты
    #38457735
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAМСУ, ты же сам цитировал MSDN: "делегату можно назначить любой метод из любого доступного класса или структуры, соответствующий сигнатуре делегата".
Как это коррелирует с твоим же: "реализация, прибитая гвоздями"?
Самым прямым способом это коррелирует. Я же приводил пример с коровой. Мой код работает с животными, твой код работает с коровой. Если потребуется мне работать со свиньей, я без проблем инжектирую свинюшку через контейнер и у меня всё будет работать (уши, голова, хвост). Если тебе потребуется работать со свинюшкой, о твоей "новинке" узнают все подписчики объекта (asp.net, winforms, прикладной код, все на планете). Разницу улавливаешь?
P.S. Может таки тебе почитать про IoC и DI? На лицо полное непонимание сути...
...
Рейтинг: 0 / 0
делегаты
    #38457737
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAМСУ, не льсти себе, лично ты по существу ничего не сказал.
Действительно. О том же думает и корова, которой я прочитал Есенина...
...
Рейтинг: 0 / 0
делегаты
    #38457741
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAМСУпропущено...
Сдурел что-ли? В случае с интерфейсом мы ссылаемся только на абстракцию !Так. Походу мы о разных вещах. Пример кода приведи.
Пецдец, товарещ. Приплыли

Пример с картинками и кодом.
...
Рейтинг: 0 / 0
делегаты
    #38457744
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУskyANAМСУ, ты же сам цитировал MSDN: "делегату можно назначить любой метод из любого доступного класса или структуры, соответствующий сигнатуре делегата".
Как это коррелирует с твоим же: "реализация, прибитая гвоздями"?
Самым прямым способом это коррелирует. Я же приводил пример с коровой. Мой код работает с животными, твой код работает с коровой. Если потребуется мне работать со свиньей, я без проблем инжектирую свинюшку через контейнер и у меня всё будет работать (уши, голова, хвост). Если тебе потребуется работать со свинюшкой, о твоей "новинке" узнают все подписчики объекта (asp.net, winforms, прикладной код, все на планете). Разницу улавливаешь?
P.S. Может таки тебе почитать про IoC и DI? На лицо полное непонимание сути...Согласен. Я тебя вообще не понимаю. Я приводил пример кода. Что ты там называешь коровой?
Приведи свой пример.
...
Рейтинг: 0 / 0
делегаты
    #38457756
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAСогласен. Я тебя вообще не понимаю. Я приводил пример кода. Что ты там называешь коровой?
Приведи свой пример.
Ну вот, разрулили. Давай тогда без примеров и прочих запудриваний. Просто берешь, открываешь букварь, читаешь и вникаешь. Пробуешь на практике с ASP.NET MVC, там всё есть для работы с инверсией виде DI контейнера (честный простенький резолвер IDependencyResolver или жирная мощная фабрика IControllerFactory). Начни с первого. Когда будешь понимать, о чем тебе тут досаждают, возвращайся, продолжим спич. А пока не вижу смысла продолжать беседу. По рукам?
...
Рейтинг: 0 / 0
делегаты
    #38457757
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAКод, эмулирующий подчищенную из мусора ссылку, можешь накидать?

таки нет. здесь я не прав. по крайне мере что касается контекста потока исполнения. делегат таки хранит ссылку. освежевал немного Рихтера. пережитки С++ дают о себе знать

этот пункт можно вычёркивать.
...
Рейтинг: 0 / 0
делегаты
    #38457761
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, сам перепишу свой код, спользуя магию DI:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
private IUserPasswordConfirmer confirmer;

public bool RefreshLogon(double maximumActivityDelay)
{
    if (maximumActivityDelay> currentActivityDelay)
    {
        return true;
    }

    if (confirmer.Confirm())
    {
        currentActivityDelay = 0;
        lastActivityTime = DateTime.Now;
        
        return true;
    }

    return false;
}

В момент вызова Confirm() наш инжектированный confirmer ссылается на конкретную реализацию.
...
Рейтинг: 0 / 0
делегаты
    #38457764
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

УРА
...
Рейтинг: 0 / 0
делегаты
    #38457767
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУskyANAСогласен. Я тебя вообще не понимаю. Я приводил пример кода. Что ты там называешь коровой?
Приведи свой пример.
Ну вот, разрулили. Давай тогда без примеров и прочих запудриваний. Просто берешь, открываешь букварь, читаешь и вникаешь. Пробуешь на практике с ASP.NET MVC, там всё есть для работы с инверсией виде DI контейнера (честный простенький резолвер IDependencyResolver или жирная мощная фабрика IControllerFactory). Начни с первого. Когда будешь понимать, о чем тебе тут досаждают, возвращайся, продолжим спич. А пока не вижу смысла продолжать беседу. По рукам?Повторю: не льсти себе. DI я использую с завидной регулярностью.
Но это мне никак не помогает понять тебя. Ты опять съехал на личности, вместо ответа по существу.
...
Рейтинг: 0 / 0
25 сообщений из 152, страница 4 из 7
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / делегаты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]