У вас не стоит Flash Player
Настройки
#84993 - Mon Apr 15 2019 01:35 PM Метод в методе Execute
Sergey_Potehin Offline
stranger

Registered: Fri Feb 15 2019
Записи: 15
Подскажите, почему при создании в теле метода Execute() другого метода и, соответственно, попытки его вызвать ТСлаб начинает ругаться? Внутри блока "Внешний скрипт" при этом пишет "нет подходящего обработчика".

Наверх
#84995 - Mon Apr 15 2019 10:11 PM Re: Метод в методе Execute [Re: Sergey_Potehin]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8134
Сложно сказать. Нужен пример, что делаете.

Наверх
#84999 - Tue Apr 16 2019 03:06 PM Re: Метод в методе Execute [Re: ViL]
Sergey_Potehin Offline
stranger

Registered: Fri Feb 15 2019
Записи: 15
Да вот,например:

public void Execute(IContext ctx, ISecurity sec)
{

ExitLong()
{ }

//Усл.на вход
sec.Positions.BuyAtMarket(bar + 1, 1, "OL");
ExitLong()

}

Если создаю в теле класса (сразу после его объявления), то всё работает. Только в метод приходится кучу параметров передавать.


Отредактировано Sergey_Potehin (Tue Apr 16 2019 03:07 PM)

Наверх
#85014 - Thu Apr 18 2019 05:16 PM Re: Метод в методе Execute [Re: Sergey_Potehin]
Sergey_Potehin Offline
stranger

Registered: Fri Feb 15 2019
Записи: 15
Что скажите,разработчики??

Наверх
#85015 - Thu Apr 18 2019 06:06 PM Re: Метод в методе Execute [Re: Sergey_Potehin]
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
Даже в русском языке слова пишутся строго определенным образом, а уж в языке программирования - все ещё строже. Не поставил точку с запятой, всё, давай до свидания. Компьютер не будет угадывать, что Вы там от него хотите.
Почитайте учебник по языку программирования C#. Про делегаты, про лямбда выражения.
_________________________
Не пишите мне! Никому ничего делать не буду.

Наверх
#85036 - Sat Apr 20 2019 09:22 AM Re: Метод в методе Execute [Re: jhgjrht]
Sergey_Potehin Offline
stranger

Registered: Fri Feb 15 2019
Записи: 15
Про строгость я с вами согласен и признаю, что опыта в программировании у меня не так много, но вот банальный пример в консольном приложении работает.

class Program
{
static void Main(string[] args)
{

void Show()
{
Console.WriteLine("Hello");
}

Show();
Console.ReadKey();
}
}

Что в моем предыдущем примере ТСлабу не понравилось я не понимаю. Делегаты и лямбда выражения в примере не используются. Обычное создание и вызов метода.

Наверх
#85037 - Sat Apr 20 2019 02:10 PM Re: Метод в методе Execute [Re: Sergey_Potehin]
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
Не понравилась версия языка на которой пишете. Возможности C# версии 7.0 недоступны. Программа ориентирована на фреймворк версии: 4.6.2; C#: 6.0. Используйте делегаты или лямбда-выражения. Но при этом есть большой подводный камень связанный с "замыканием" переменных. Без опыта, лучше уж используйте отдельные функции.

using System;
class Program
{
static void Main(string[] args)
{
Action Show = () => Console.WriteLine("Hello");
Show();
Console.ReadKey();
}
}
_________________________
Не пишите мне! Никому ничего делать не буду.

Наверх


Moderator:  ViL, sar