我使用的是授人以动态地选择之间的许多功能,即如何知道
delegate bool CtrlTransfer(int xferLength, ref byte[] buffer);
bool CtrlRead(int xferLength, ref byte[] buffer)
{ /* do a read */ }
bool CtrlWrite(int xferLength, ref byte[] buffer)
{ /* do a write */ }
并且这些在一个调度功能作为
byte[] RunTest(CtrlTransfer ctrlXferFunction, /* a bunch of other args */) {
/* do some stuff */
ctrlXferFunction(/* its arguments */);
/* do some more stuff */
return someByteArray;
}
我之所以”的函数被调用m使用委托而不是一些参数指示方向是ctrlXferFunction
被多次调用并且使用if {..} else {..}
处处变得非常单调乏味。
我现在的问题是,我不知道实际调用哪个控制传递函数。如果我尝试使用Python或JavaScript的if(ctrlXferFunction == CtrlRead)
,则会出现==
无法在方法组和CtrlTransfer之间使用的错误。
有没有办法知道哪个函数被实际调用?
(我的道歉,如果我做任何术语错误我是新的C#)。
你打算用这个信息呢?为什么不在“CtrlRead”和“CtrlWrite”函数中添加逻辑? –
@KarthikT CtrlRead和Write函数只做一件事 - 在控制端点(USB)上进行读取或写入。最终,RunTest函数将不得不扩展以合并其他类型的读取/写入。并且在不同端点上执行传输的接口是不同的 - 因此具有不同的功能 – Manu
我实际上在询问在确定调用哪个函数后您将执行什么操作 –