Re[11]: Оуеваю от кода коллеги
От: Ночной Смотрящий Россия  
Дата: 21.04.19 13:56
Оценка:
Здравствуйте, barn_czn, Вы писали:

_>т.е. чтобы оценить код одного метода из 5 строк надо выложить назначение всей программы?


Нет, не всей. Но не 5 строк.

_> прикольная логика.


Нет, не прикольная. Называется ложная альтернатива.
Re[9]: Оуеваю от кода коллеги
От: Ночной Смотрящий Россия  
Дата: 21.04.19 13:56
Оценка:
Здравствуйте, barn_czn, Вы писали:

НС>>О том что при подобном использовании дизайн с делегатом вполне оправдан.

_>ну ты еще про пользу делегатов мне расскажи ).

Зачем? Я тебе привел код, который сломается если взять твою "исправленную" реализацию. Если ты знаешь как сделать лучше, сохранив работоспособность — велкам. А вот если не знаешь — придется тебе признать что код вполне адекватен.
Re[5]: Оуеваю от кода коллеги
От: okon  
Дата: 21.04.19 13:58
Оценка:
Здравствуйте, barn_czn, Вы писали:

_>Здравствуйте, okon, Вы писали:


_>>>Ну и наконец базовое мое утверждение: ни надо передавать делегат если он вызывается в конце метода. Потому что вызвать нечто в конце метода равносильно вызову после самого метода.

O>>Не равносильно.
O>>Попробуй варианты которые я привел выше реализовать при таком подходе.

_>Причем тут твои варианты? Я обсуждаю приведенный мной код а ни твои варианты.

Мои варианты показывают кейсы использования делегата который был в оригинальном примере.
Если попробуешь сделать такой же функционал с подходом который ты написал — вызывать отдельно в конце метода, то не получится.

_>Мое утверждение — ну давай на пальцах, раз так ни очевидно:

То что ты написал это не приведенный тобой код, в приведенном ранее коде там Action<DataObject, Action> такой делегат.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Re[6]: Оуеваю от кода коллеги
От: barn_czn  
Дата: 21.04.19 14:04
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, barn_czn, Вы писали:


_>>Причем тут твои варианты? Я обсуждаю приведенный мной код а ни твои варианты.


НС>С приведенным тобой кодом такое тоже возможно:

НС>
НС>SetData((do, commit) =>
НС>{
НС>  DoSmth();
НС>  SynchronizationContext.Current.Send(commit);
НС>})
НС>


Про преобразования кода не слышали? Нате.

var commit = SetData(out var do)
DoSmth();
SynchronizationContext.Current.Send(commit);


Как изменить метод SetData догадаешься?
Re[6]: Оуеваю от кода коллеги
От: barn_czn  
Дата: 21.04.19 14:08
Оценка:
Здравствуйте, okon, Вы писали:

O>Здравствуйте, barn_czn, Вы писали:


_>>Здравствуйте, okon, Вы писали:


_>>>>Ну и наконец базовое мое утверждение: ни надо передавать делегат если он вызывается в конце метода. Потому что вызвать нечто в конце метода равносильно вызову после самого метода.

O>>>Не равносильно.
O>>>Попробуй варианты которые я привел выше реализовать при таком подходе.

_>>Причем тут твои варианты? Я обсуждаю приведенный мной код а ни твои варианты.

O>Мои варианты показывают кейсы использования делегата который был в оригинальном примере.

Человек, ты здоров? Я ни обсуждаю пользу делегата, или делегата с сигнатурой какой то. Я обсуждаю код, он приведен в начале топика.
Методы принимающие делегат конечно полезны, их много и они разные. Спору нет. Ну ты маленько то читай о чем топик.
Re[6]: Оуеваю от кода коллеги
От: barn_czn  
Дата: 21.04.19 14:18
Оценка:
_>>Мое утверждение — ну давай на пальцах, раз так ни очевидно:
O>То что ты написал это не приведенный тобой код, в приведенном ранее коде там Action<DataObject, Action> такой делегат.

И? это принципиально что принимает Action? Открою секрет: метод может ни только принимать делегаты, но и возвращать их как результат ).
Домашнее задание: преобразуй метод SetData так чтобы он не принимал делегата.
Re[7]: Оуеваю от кода коллеги
От: okon  
Дата: 21.04.19 14:37
Оценка:
Здравствуйте, barn_czn, Вы писали:



_>>>Мое утверждение — ну давай на пальцах, раз так ни очевидно:

O>>То что ты написал это не приведенный тобой код, в приведенном ранее коде там Action<DataObject, Action> такой делегат.

_>И? это принципиально что принимает Action? Открою секрет: метод может ни только принимать делегаты, но и возвращать их как результат ).

_>Домашнее задание: преобразуй метод SetData так чтобы он не принимал делегата.
Именно что принципиально и предлагаю тебе повторить варианты использования этого делегата, например которые я привел.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Re[7]: Оуеваю от кода коллеги
От: okon  
Дата: 21.04.19 14:41
Оценка: +1
_>>>Причем тут твои варианты? Я обсуждаю приведенный мной код а ни твои варианты.
O>>Мои варианты показывают кейсы использования делегата который был в оригинальном примере.

_>Человек, ты здоров? Я ни обсуждаю пользу делегата, или делегата с сигнатурой какой то. Я обсуждаю код, он приведен в начале топика.

Ты спросил зачем там Action<DataObject, Action> тебе показали варианты использования.
Говоришь что без такого делегата будет тоже самое — тебе говорят что нет. Чтобы в этом убедится что не тоже самое — попробуй реализуй те же варианты использования без него.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Re[8]: Оуеваю от кода коллеги
От: barn_czn  
Дата: 21.04.19 14:55
Оценка:
Здравствуйте, okon, Вы писали:

_>>>>Причем тут твои варианты? Я обсуждаю приведенный мной код а ни твои варианты.

O>>>Мои варианты показывают кейсы использования делегата который был в оригинальном примере.

_>>Человек, ты здоров? Я ни обсуждаю пользу делегата, или делегата с сигнатурой какой то. Я обсуждаю код, он приведен в начале топика.

O>Ты спросил зачем там Action<DataObject, Action> тебе показали варианты использования.

Где я спросил? Я утверждаю что это гвнокод. Вопрос от утверждения отличаем?

O>Говоришь что без такого делегата будет тоже самое — тебе говорят что нет. Чтобы в этом убедится что не тоже самое — попробуй реализуй те же варианты использования без него.


Какие варианты? Еще раз , человек, я утверждаю что гвнокод в топике преобразуется к варианту без делегата. А ни любой код с делегатом. А ты бросился примеры писать с делегатом.
Ну как бы и без примеров понятна полезность делегатов то. Я и спрашиваю — здоров ли ты.
Re[8]: Оуеваю от кода коллеги
От: barn_czn  
Дата: 21.04.19 14:57
Оценка:
Здравствуйте, okon, Вы писали:

O>Здравствуйте, barn_czn, Вы писали:




_>>>>Мое утверждение — ну давай на пальцах, раз так ни очевидно:

O>>>То что ты написал это не приведенный тобой код, в приведенном ранее коде там Action<DataObject, Action> такой делегат.

_>>И? это принципиально что принимает Action? Открою секрет: метод может ни только принимать делегаты, но и возвращать их как результат ).

_>>Домашнее задание: преобразуй метод SetData так чтобы он не принимал делегата.
O>Именно что принципиально и предлагаю тебе повторить варианты использования этого делегата, например которые я привел.

П..ц Ему говорят про код в топике он кинулся какие то примеры писать а потом просит их обсуждать.. во народ.
Re[9]: Оуеваю от кода коллеги
От: okon  
Дата: 21.04.19 15:01
Оценка:
_>Какие варианты? Еще раз , человек, я утверждаю что гвнокод в топике преобразуется к варианту без делегата.
Преобразуется, но ты потеряешь те возможности которые есть с делегатом. Т.е. это не равноценное преобразование.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Re[9]: Оуеваю от кода коллеги
От: okon  
Дата: 21.04.19 15:14
Оценка:
O>>Именно что принципиально и предлагаю тебе повторить варианты использования этого делегата, например которые я привел.
_>П..ц Ему говорят про код в топике он кинулся какие то примеры писать а потом просит их обсуждать.. во народ.
Это метод библиотеки и код в топике подразумевает что его будут вызывать, нет смысла обсуждать функцию саму по себе, в отрыве от того как ее будут использовать.
Примеры тебе дали чтобы показать как этот библиотечный метод может использоваться, и зачем нужно передавать второй Action, т.е. например как я бы использовал будучи пользователем библиотеки,.
Ты хочешь упростить метод, при этом ты потеряешь эти возможности, библиотека станет менее гибкой.
Если хочешь доказать что она не станет менее гибкой, то реализуй нужный мне сценарий без этого.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Re[10]: Оуеваю от кода коллеги
От: barn_czn  
Дата: 21.04.19 15:39
Оценка:
Здравствуйте, okon, Вы писали:

_>>Какие варианты? Еще раз , человек, я утверждаю что гвнокод в топике преобразуется к варианту без делегата.

O>Преобразуется, но ты потеряешь те возможности которые есть с делегатом. Т.е. это не равноценное преобразование.

какие возможности??
Re[10]: Оуеваю от кода коллеги
От: barn_czn  
Дата: 21.04.19 15:42
Оценка:
Здравствуйте, okon, Вы писали:

O>>>Именно что принципиально и предлагаю тебе повторить варианты использования этого делегата, например которые я привел.

_>>П..ц Ему говорят про код в топике он кинулся какие то примеры писать а потом просит их обсуждать.. во народ.
O>Это метод библиотеки и код в топике подразумевает что его будут вызывать, нет смысла обсуждать функцию саму по себе, в отрыве от того как ее будут использовать.
O>Примеры тебе дали чтобы показать как этот библиотечный метод может использоваться, и зачем нужно передавать второй Action, т.е. например как я бы использовал будучи пользователем библиотеки,.
O>Ты хочешь упростить метод, при этом ты потеряешь эти возможности, библиотека станет менее гибкой.
O>Если хочешь доказать что она не станет менее гибкой, то реализуй нужный мне сценарий без этого.

Так ты напиши сначала этот сценарий, но используй метод из топика, а ни свои придуманые примеры.
А то сам себе примеры придумал, конкретный код топика в игнор, и пытается доказать полезность делегатов, которая итак вне сомнений. Ну народ.
Re: Можно пеерписать так
От: igor-booch Россия  
Дата: 21.04.19 17:24
Оценка: +3
public static void SetData(
    Func<DataObject, DataObject>     dataObjectTransformer   = null, 
    Func<DataObject, Action, Action> commitActionTransformer = null)
{
    Clipboard.Clear();

    var data = new DataObject();
    if (dataObjectTransformer != null) data = dataObjectTransformer(data);

    Action commitAction = () => Clipboard.SetDataObject(data, true);
    if (commitActionTransformer != null) commitAction  = commitActionTransformer(data, commitAction);

    commitAction();
}
Отвечайте на это сообщение, только если у Вас хорошее настроение и в Вашем ответе планируются только конструктивные вопросы и замечания
http://rsdn.ru/Info/rules.xml
Отредактировано 21.04.2019 17:24 igor-booch . Предыдущая версия .
Re[2]: Оуеваю от кода коллеги
От: bnk СССР http://unmanagedvisio.com/
Дата: 21.04.19 17:36
Оценка:
Здравствуйте, ltc, Вы писали:

ltc>У нас бы кодревью это не прошло.


Тогда вы скорее всего пишете не библиотеки, а клиентский софт?

Выше несколько толковых людей объяснило, зачем может понадобиться такая конструкция Action(Action).
Не слишком наглядно, да, но зато с этим можно работать. Если сделать как пишет ТС, то когда логику потребуется изменить, придется менять библиотеку.
Что недопустимо по условию задачи (мы говорим про библиотеку). Приехали. Если ТС не желает слышать, что ему говорят, а вместо этого бестися, то это его проблемы.
Отредактировано 21.04.2019 17:37 bnk . Предыдущая версия .
Re[3]: Оуеваю от кода коллеги
От: barn_czn  
Дата: 21.04.19 18:23
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Здравствуйте, ltc, Вы писали:


ltc>>У нас бы кодревью это не прошло.


bnk>Тогда вы скорее всего пишете не библиотеки, а клиентский софт?


причем тут что он пишет? обсуждается просто конкретный код, метод. Вам ни все равно где этот код вызовется?

bnk>Выше несколько толковых людей объяснило, зачем может понадобиться такая конструкция Action(Action).


А зачем надо объяснять полезность Action(Action) ? Речь о конкретном коде. Ни делегатах вообще, ни Action.. а конкретного метода.

bnk>Не слишком наглядно, да, но зато с этим можно работать. Если сделать как пишет ТС, то когда логику потребуется изменить, придется менять библиотеку.


Опять библиотеку. Родной, обсуждается вполне конкретный код.

bnk>Что недопустимо по условию задачи (мы говорим про библиотеку).


Я не знаю с кем ты там говоришь про библиотеку. Я говорил о гвнокоде в методе. И этот гвнокод остается гвнокодом где бы он не находился. В библиотеки или в аппе.
Re[7]: Оуеваю от кода коллеги
От: Ночной Смотрящий Россия  
Дата: 21.04.19 19:02
Оценка:
Здравствуйте, barn_czn, Вы писали:

_>var commit = SetData(out var do)


О, out параметры в ход пошли. И эти люди запрещают ковыряться в носу.
Но я рад, что по второму делегату вопросов не стало.
Но и с первым тоже могут быть разные варианты. К примеру, функция такая, с такой сигнатурой уже может быть и зваться не только из SetData. Тогда вариант с делегатом породит меньше кода, нежели страшилки с out параметрами. Или SetData может зваться в нескольких разных местах, тогда твой вариант придется либо в еще одну функцию заворачивать, либо копипастить.
Re[8]: Оуеваю от кода коллеги
От: barn_czn  
Дата: 21.04.19 19:11
Оценка: :)
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, barn_czn, Вы писали:


_>>var commit = SetData(out var do)


НС>О, out параметры в ход пошли. И эти люди запрещают ковыряться в носу.

НС>Но я рад, что по второму делегату вопросов не стало.

Вообще то и не было. Ты сам себе его придумал и радостно начал отвечать видимо.
Внимательно читать бывает полезно, человек.
Твой метод преобразован в более простую форму. out параметр тебе не нравится? Ну всяко лучше делегата в делегате то.. не?
Умоляю, ни начинай давать советы про out, перечитай все таки тему топика. Она ни про твою эрудицию в делегатах.
Re[9]: Оуеваю от кода коллеги
От: AlexRK  
Дата: 21.04.19 19:16
Оценка:
Здравствуйте, barn_czn, Вы писали:

_>Умоляю, ни начинай давать советы про out, перечитай все таки тему топика.


По теме топика: говнокодом из отписавшихся здесь это считаешь только ты.

Еще вопросы?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.