注意;發佈僞碼示例...請參閱下文示例文本(我告訴你,這將是一個熱鬧的一塌糊塗!)一個代表的多個事件
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; }
而不是使用事件處理程序的方法...
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事件設置爲Static,則backtest類將使用eventhandler方法。
發佈你的全班 – hunter 2011-04-08 00:19:24
我認爲你應該給你更多的情況。也許舉一個你想要實現的場景的例子。 – AbdouMoumen 2011-04-08 00:20:53
如果你和每個人都可以從「搞笑亂七八糟」中學習,那對每個人都有好處。無論如何發佈它。 – 2011-04-08 00:21:43