powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Задачка на профпригодность
25 сообщений из 463, страница 3 из 19
Задачка на профпригодность
    #38487486
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУПо-моему, задача внятно сформулирована. Нужен мейкер с методом для инициализации моих 100500 эвентхэндлеров.

ну хз. всё равно не понял что ты хочешь.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487501
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttну хз. всё равно не понял что ты хочешь.


Алексей уже практически сделал, но теперь осталось его функцию описать в переменной.

Хочу нечто такое:

Код: c#
1.
2.
3.
MakeEvent = ... ?
button1.Click += MakeEvent("Текст1");
button2.Click += MakeEvent("Текст2");
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487521
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУХочу нечто такое:

Код: c#
1.
2.
3.
MakeEvent = ... ?
button1.Click += MakeEvent("Текст1");
button2.Click += MakeEvent("Текст2");


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
EventHandler MakeEvent(string title)
{
    // Тут могла бы быть лютая логика.

    return (s, e) => ((Button)s).Text = title;
}

.............

var h = MakeEvent("Типичная задача из непонятого.");
button1.Click += h;
button2.Click += h;
...
button100500.Click += h;

Не?
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487525
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНужен мейкер с методом для инициализации моих 100500 эвентхэндлеров.Тут нужно 1005 кодеров. По 100 эвентхэндлеров на брата...
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487526
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Клютая логика

...МСУтакой мейкер я могу написать в одну строчку

МСУБез отдельных классов, без отдельных членов класса

МСУАлексей уже практически сделал, но теперь осталось его функцию описать в переменной
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487528
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУНужен мейкер с методом для инициализации моих 100500 эвентхэндлеров.Тут нужно 1005 кодеров. По 100 эвентхэндлеров на брата...
Не прокормлю всех Проще в одной строке написать мейкер:

Код: c#
1.
2.
3.
var MakeEvent = { жуткий код }
button1.Click += MakeEvent("Текст1");
button2.Click += MakeEvent("Текст2");
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487546
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей Кпропущено...
Тут нужно 1005 кодеров. По 100 эвентхэндлеров на брата...
Не прокормлю всех Проще в одной строке написать мейкер:

Код: c#
1.
2.
3.
var MakeEvent = { жуткий код }
button1.Click += MakeEvent("Текст1");
button2.Click += MakeEvent("Текст2");

Func<string, EventHandler> MakeEvent это жостко. :-)
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487578
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К]Func<string, EventHandler> MakeEvent это жостко. :-)
Ну, ну, я вижу какие-то потуги... Не получается, что-ли родить окончательное решение?
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487582
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей К]Func<string, EventHandler> MakeEvent это жостко. :-)
Ну, ну, я вижу какие-то потуги... Не получается, что-ли родить окончательное решение?
Код: c#
1.
Func<string, EventHandler> MakeEvent = () => "Текст 1";

Так?
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487585
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К
Код: c#
1.
Func<string, EventHandler> MakeEvent = () => "Текст 1";

Так?
Не компилится. Тужься, дружище!
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487591
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или так?
Код: c#
1.
Func<string, EventHandler> MakeEvent = () => { return "Текст 1"; };



А так?
Код: c#
1.
Func<string, EventHandler> MakeEvent =  t => (s, e) => ((Button)s).Text = t;
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487592
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexxxxxSashukнеть) по типу аргумента выберет метод
А вы скомпилируйте! :)
LexxxxxLexxxxx,

Срабатывает обжект. А в чем подвох?
Я где-то в МСДНе об этом читал. Забыл, где. Наверняка где-нибудь в примечаниях мелким шрифтом.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487596
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexxxxxDenis.Ну вообще, по идее, у большенства стринг и напишет. Не многие уже в 10 студии под .нет 4 пишут.
Ага! Значит подвох все таки в версии фреймворка?
Так нечестно!
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487599
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Молодец, Алексей, пятёрка тебе :)

Конечный сахар:

Код: c#
1.
2.
3.
Func<string, EventHandler> MakeEvent = (title) => (sender, e) => { ((Button)sender).Text = title; };
button1.Click += MakeEvent("Текст1");
button2.Click += MakeEvent("Текст2");
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487613
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУМолодец, Алексей, пятёрка тебе :)

Конечный сахар:

Код: c#
1.
2.
3.
Func<string, EventHandler> MakeEvent = (title) => (sender, e) => { ((Button)sender).Text = title; };
button1.Click += MakeEvent("Текст1");
button2.Click += MakeEvent("Текст2");


А как защититься, чтобы этот MakeEvent применяли только к баттону и чтобы максимум, где ошибка вылазила - это во время компиляции, а не во время выполнения?
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487622
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320А как защититься, чтобы этот MakeEvent применяли только к баттону и чтобы максимум, где ошибка вылазила - это во время компиляции, а не во время выполнения?
Это EventHandler, а не дженерик.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487644
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУuser7320А как защититься, чтобы этот MakeEvent применяли только к баттону и чтобы максимум, где ошибка вылазила - это во время компиляции, а не во время выполнения?
Это EventHandler, а не дженерик.Поэтому лучше как-то так:
Код: c#
1.
2.
3.
4.
5.
6.
void AddHandler(Button b, string t)
{
    // Тут дикая логика

    b.Click += (s, e) => b.Text = t;
}
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487664
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУКонечный сахар:
МСУПредставь, что там сложна логика и нужно это всё красиво обернуть в функцию.
Не знаю, как там у вас, а у нас за сложную объемную логику на лямбдах бьют тупым тяжелым предметом. Как минимум в рамках борьбы за читаемость кода.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487667
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУпропущено...

Это EventHandler, а не дженерик.Поэтому лучше как-то так:
Код: c#
1.
2.
3.
4.
5.
6.
void AddHandler(Button b, string t)
{
    // Тут дикая логика

    b.Click += (s, e) => b.Text = t;
}


Ну а этот AddHandler где должен быть? Я к тому, что от "красивый и универсальный эвент мейкер", наверное, уже ничего не осталось. Осталось "только к баттону" и "только в этом классе". Я привык, что "красивый и универсальный" - это что-то, связанное с дженериками и расширяющими методами.

Я мало во что въехал, что тут МСУ напросил (список требований где-то выше), но мне кажется, что вот такие вот выкрутасы с кодом ведут к тому, что кроме МСУ с ним нормально работать и его поддерживать мало кто сможет. Потом приходят всякие джуниоры на чужой проект и не могут понять, что как работает. Лучше уж меньше выкрутасов и экстремального программирования, больше строк с комментариями, зато понятнее и поддерживать легче.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487671
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныНе знаю, как там у вас, а у нас за сложную объемную логику на лямбдах бьют тупым тяжелым предметом. Как минимум в рамках борьбы за читаемость кода.
См. название топика :)
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487680
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Я к тому, что от "красивый и универсальный эвент мейкер", наверное, уже ничего не осталось. Осталось "только к баттону" и "только в этом классе". Я привык, что "красивый и универсальный" - это что-то, связанное с дженериками и расширяющими методами.

Я мало во что въехал, что тут МСУ напросил (список требований где-то выше), но мне кажется, что вот такие вот выкрутасы с кодом ведут к тому, что кроме МСУ с ним нормально работать и его поддерживать мало кто сможет. Потом приходят всякие джуниоры на чужой проект и не могут понять, что как работает. Лучше уж меньше выкрутасов и экстремального программирования, больше строк с комментариями, зато понятнее и поддерживать легче.Код должен быть написан так, чтобы комментарии были не нужны. Добавлять их только в крайнем случае.

"Выкрутасы" в коде пусть будут. Но они должны быть в рамках принятых в команде стандартов.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487688
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныМСУКонечный сахар:
МСУПредставь, что там сложна логика и нужно это всё красиво обернуть в функцию.
Не знаю, как там у вас, а у нас за сложную объемную логику на лямбдах бьют тупым тяжелым предметом. Как минимум в рамках борьбы за читаемость кода.
Не понимаю. Если был вопрос в отладке, то понятно - не у всех LINQ Pad ещё стоит и вообще. Но когда людям тупо лень учить Линк, лямбды и выражения, то это уже проблемы этих людей, не? Какие, нахрен, они сеньоры, если не могут разобрать простую лямбду джуниора (а джуниор пытается быть в треде новых фич и мод).

Моя гордость (надулся):

Я уже и сам не помню, что эта штука делает - попробуйте понять из кода. Завтра вспомню - скажу.


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
MyModel.Recommendations =
    preparation.Recommendations
    .OrderBy<DBLibrary.Recommendation, ICollection<DBLibrary.Group>>(
        r => r.Groups,
        Comparer<ICollection<DBLibrary.Group>>.Create(
            (x, y) =>
                x
                .OrderBy(g => g.Name)
                .FirstOrDefault()
                .Name
                .CompareTo(
                    y
                    .OrderBy(g => g.Name)
                    .FirstOrDefault()
                    .Name)))
    .Select(r => new RecommendationForModel()
    {
    	...
    })
    .ToList()
    .AsReadOnly();

...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487689
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

ппц...
это за подобные задачки "с решением в одну строчку кода" надо ставить 5+ и отправлять на пожизненную пенсию
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487697
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Моя гордость (надулся)
Пфф. Большая и сложная - это полстраницы кода минимум. С парой десяток локальных переменных внутри lambda scope, и еще стольки же в closure. Видел такое. Видимо, это было следствие эйфории от первого знакомства с лямбдами.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38487700
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУ,

ппц...
это за подобные задачки "с решением в одну строчку кода" надо ставить 5+ и отправлять на пожизненную пенсию
Больше всего в подобных задачках подкупает "в одну строчку кода". Никто сразу не думает, что в одной строчке может быть трёхтонная лямбда, все начинают перебирать в голове простейшие решения. Это как на Хабре была серия статей про игрульки на JS в 30 строк кода.
...
Рейтинг: 0 / 0
25 сообщений из 463, страница 3 из 19
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Задачка на профпригодность
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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