Примечание;Пример размещения псевдокода ... См. Пример текста ниже (я говорил вам, что это будет смешной беспорядок!)
Class Enter
{
public event EnterDelegate EnterDelegateEvent;
public event ExitDelegate ExitDelegateEvent;
public Enter(EventEventArgs e)
{
// do something
EnterOrder(e);
ExitEventArgs ev = new ExitEventArgs(string ticker, double prices.. etc);
ExitEvent(ev);
// update order status etc.
}
private double EnterOrder()
{
double ent = 0.00
if (EnterDelegateEvent != null)
{
ent = EnterDelegateEvent(this, e);
return ent;
}
else { return e.lo; }
}
public double ExitEvent(ExitEventArgs e)
{
// do something
ExitEvent(ev);
}
private double ExitEvent()
{
double ext = 0.00
if (ExitDelegateEvent != null)
{
ext = ExitDelegateEvent(this, e);
return ext;
}
else { return e.Hi; }
}
} // end Enter Class
Class EventHandlers
{
public double SendEnter(EventArgs e)
{
// send enter to order server here
return price;
}
public double SendExit(EventArgs e)
{
// send exit to order server here
return price
}
}
Orders Class
{
Enter ent = new Enter();
public GetOrders()
{
// get order data
// create order event
EnterEventArgs ev = new EnterEventArgs(ticker, price, data...etc);
ent.Enter(ev);
}
}
Orders.aspx.cs
{
EventHandlers evt = new EventHandlers();
Enter ent = new Enter();
Orders ord = new Orders();
Private void login()
{
// log into Orders Server
ent.EnterDelegateEvent += EnterDelegate(evt.SendEnter);
ent.ExitDelegateEvent += ExitDelegate(evt.SendExit);
}
private void logout()
{
// delete / remove delegate event handlers;
}
// initiate orders example event
private void btnclick_GetOrders()
{
ord.GetOrders();
}
}
В дополнение к запуску GetOrders выше, мне также нужно запустить другой набор заказов изGetBackTest () .. Иногда это должно быть одновременным, поэтому при запуске подпрограммы EnterOrder () EventDelegate должен возвращать if (EventDelegate == null) {return e.prices;}
Вместо использования метода EventHandler ...
Class Backtest
{
Enter ent = new Enter();
// kickoff enter order just as Orders Class does
// this class needs to NOT use the Event Delegate as Orders class does
}
Есть ли простой способ включить и выключить DelegateEvents и убедиться, что создан только один из них ??Если я включу события Delegate в качестве статических, класс backtest будет использовать методы обработчика событий.