我使用的是授人以動態地選擇之間的許多功能,即如何知道
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
我實際上在詢問在確定調用哪個函數後您將執行什麼操作 –