繁体   English   中英

如何为该委托分配变量参数

[英]How can I assign this delegate with variable arguments

当尝试使用具有可变数量的参数的委托时,出现以下错误:

错误39使用通用类型'SlotManager.OrdersConnection.delNewOrderSingle'需要6个类型参数

我究竟做错了什么?

public delegate QuickFix.Message delNewOrderSingle<A,B,C,D,E>(A a, B b, C c, D d, E e);
public delegate QuickFix.Message delNewOrderSingle<A, B, C, D, E, F>(A a, B b, C c, D d, E e, F f);

public virtual QuickFix.Message AgnosticNewOrderSingle42LIMITtest(char side, string symbol, decimal amount, decimal price)
{

            delNewOrderSingle newOrderSingle = new QuickFix.FIX44.NewOrderSingle(
                    new ClOrdID(masterForm.OrderBook.GetNewClOrdIDBroker(ecn.brokerCode)),
                    new Symbol(symbol),
                    new Side(side),
                    new TransactTime(DateTime.Now),
                    ordType = new OrdType(OrdType.LIMIT));


}

注意:从肖恩的评论,我看到这个问题是非常错误的。 请看这个故事

是否可以动态更改对象的类型?

似乎您正在尝试将NewOrderSingle的实例分配给委托。 您需要为委托分配一个方法,而不是对象实例。

另外,由于委托是通用的,因此您需要指定通用类型

您是要这样做吗?

delNewOrderSingle<ClOrdID, Symbol, Side, TransactTime, OrdType> newOrderSingle = (a,b,c,d,e) =>  new QuickFix.FIX44.NewOrderSingle(a, b, c, d, e);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM