← 返回

.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(), то все нормально.