powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Про анонимную лямбду подскажите
25 сообщений из 28, страница 1 из 2
Про анонимную лямбду подскажите
    #38240106
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте

Вот понадобилось получение понедельника следующей недели, хочу сразу инициализировать
но метод не создавать (одноразовая вещь), а просто лямбдой
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
        private readonly DateTime startDate = ((Func<DateTime>)(() =>
        {
            var d = DateTime.Now.AddDays(1);
            while (d.DayOfWeek != DayOfWeek.Monday)
            {
                d = d.AddDays(1);
            }
            return d;
        }))();

чето многовато скобок получается :(
подскажите, пожалуйста, как проще/короче то же самое сделать?
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240181
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганель,
можно так, но проще ли это и короче сомневаюсь
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 private readonly Lazy<DateTime> startDate = new Lazy<DateTime>(() =>
        {
            var d = DateTime.Now.AddDays(1);
            while (d.DayOfWeek != DayOfWeek.Monday)
            {
                d = d.AddDays(1);
            }
            return d;
        }
          );
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240191
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганель,

Код: c#
1.
2.
3.
4.
5.
6.
7.
private DateTime GetNextMonday()
{
  var d = DateTime.Now.AddDays(1);
  while (d.DayOfWeek != DayOfWeek.Monday)
                d = d.AddDays(1);
  return d;
}



а чем так не устраивает?
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240202
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПаганельВот понадобилось получение понедельника следующей недели, хочу сразу инициализироватьа если программа запустится в воскресенье вечером и продолжит работать в понедельник? тогда в 00:00 startDate безнадежно устареет.
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240203
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationа чем так не устраивает?сейчас-то нормально
просто вдруг потом понадобится часто обращаться...
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240205
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный МечПаганельВот понадобилось получение понедельника следующей недели, хочу сразу инициализироватьа если программа запустится в воскресенье вечером и продолжит работать в понедельник? тогда в 00:00 startDate безнадежно устареет.нет, ее юзеры запускать будут, которые ночью спят
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240208
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганельнет, ее юзеры запускать будут, которые ночью спятосновное правило кодинга: если баг может произойти, он произойдет.
ты же не первый год в программизме..
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240209
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганель, а зачем тут цикл? Следующий день недели
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240214
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чтобы девочка-оператор пришла на работу в воскресенье это уже маловероятно,
чтобы ночью это вообще невероятно,
но если уж эта одна миллионная выстрелит - скажу что следующей неделей считается неделя после той, в которую прогу запустили, я ж не первый год
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240219
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloperПаганель, а зачем тут цикл? Следующий день недели о, я знал что както так можно, да думать было лень, спасибо
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240222
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганельpationа чем так не устраивает?сейчас-то нормально
просто вдруг потом понадобится часто обращаться...

а если вдруг компьютер на ночь не выключат?
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240228
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationа если вдруг компьютер на ночь не выключат?и что? нажали кнопку - создался новый экземпляр класса, отработал, убился
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240241
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу сабжа, когда хочется лямбду заюзать по месту.

Мне больше нравится такой вариант: просто объявляем лямбду.

Код: c#
1.
Func<DateTime> startDate = () => { return DateTime.Now; };



А в коде дальше используем:

Код: c#
1.
DateTime = startDate();



Всё. И не нужно никаких вкорячиваний сотен скобочек и определений, код чистый и аккуратный.
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240248
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloperпросто объявляем лямбдуя б тогда функцию объявил
но захотелось новых веяний попробовать
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240249
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используя код из моего рецепта получается следующее:

Код: c#
1.
2.
3.
4.
Func<DateTime> startDate = () =>
{
    return DateTime.Now.AddDays(DateTime.Now.DayOfWeek == DayOfWeek.Monday ? 7 : ((int)DayOfWeek.Monday - (int)DateTime.Now.DayOfWeek + 7) % 7);
};



Код: c#
1.
DateTime = startDate();



Профит? Судить Панагельчику.
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240255
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганельcooldeveloperпросто объявляем лямбдуя б тогда функцию объявил
но захотелось новых веяний попробовать
Ну а какая принципиально разница, что ты в самом определении заюзаешь скобочки (то есть непосредственный вызов) и заюзаешь определение, а потом вызовешь. Не вижу принципиальной разницы.
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240258
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
впишу-ка я в код свой комментарий со ссылкой на codearticles.ru бо чует мое сердце что через месяц глядя на это я нифига не пойму

еще раз спасибо
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240265
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганель, и кстати, это вовсе не новые веяния, а старопердунство из 3.5 фреймворка
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240271
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну да, Lazy новее, но я до него еще не дошел, надо будет на досуге почитать
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240279
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганельну да, Lazy новее, но я до него еще не дошел, надо будет на досуге почитать
А, ты про ленивости. Так это Где-то в степи обожает их, вкорячивает куда ни попадя :)
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240302
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloperПаганель, и кстати, это вовсе не новые веяния, а старопердунство из 3.5 фреймворка а новые как выглядят? там ещё более замороченный лямбда-синтаксис?
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240314
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меча новые как выглядят? там ещё более замороченный лямбда-синтаксис?
Хм. А новых, вроде, и нет, весь синтаксический сахар из 3.5 тянется.
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240315
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloperПаганельну да, Lazy новее, но я до него еще не дошел, надо будет на досуге почитать
А, ты про ленивости. Так это Где-то в степи обожает их, вкорячивает куда ни попадя :)
никуда попало, а где пахнет сингтоном,
тут по месту, и ленивость нафиг не нужна ( написал что бы не забывали)
обыкновенный акцессор вполне хватит и readonly ой ли?
что до компилятора та pation прав, гораздо спокойней и партикулярней..
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240330
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганель
Код: c#
1.
private readonly DateTime startDate

кстати, а ведь значение можно задать в конструкторе.
если есть конструктор, то может, нафиг вся эта свистопляска с лямбдами?
...
Рейтинг: 0 / 0
Про анонимную лямбду подскажите
    #38240339
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно и так, но конструктор (пока) не планируется, да я уже и без лямбд написал с помощью cooldeveloper
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Про анонимную лямбду подскажите
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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