← Назад

.Once().Do()

Раньше (по крайней мере в 4.0.1) можно было сделать так:


this
.When(token.CandlesFinished())
.Once()
.Do(cs => Console.WriteLine(cs.Last().Time));

Теперь эта конструкция подразумевает, что аргумент Do() будет StrategyRule.

Я уже нашел, что теперь .Once() надо писать в конце. Не знаю, зачем это было нужно, но обратная совместимость потерялась. Пишу на случай если это баг.

Комментарии (2)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

Mikhail Sukhov
Mikhail Sukhov

Church: Не знаю, зачем это было нужно, но обратная совместимость потерялась.

Обратная совместимость осталось.

Church
Church Автор

Если ставить .Once() перед .Do(), то возникает ошибка а-ля:

Error 2 'StockSharp.Algo.Strategies.StrategyRule' does not contain a definition for 'Last' and no extension method 'Last' accepting a first argument of type 'StockSharp.Algo.Strategies.StrategyRule' could be found (are you missing a using directive or an assembly reference?)

Если без .Once(), то все нормально.