← 戻る

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