Sim*_*GER 2 c c# c++ api pointers
我正在使用C#中的C API.在C中,方法作为参数传递,我试图在C#中完成同样的事情.
在C中我会按以下方式调用函数:
LL_SetStatusCb(OnStatusRcv);
LL_SetScanCb(scanCb);
LL_Scan();
Run Code Online (Sandbox Code Playgroud)
请注意,使用的方法按以下方式定义:
void OnStatusRcv(ll_status_t status)
void scanCb(ll_scan_result_t *result)
Run Code Online (Sandbox Code Playgroud)
在C#中,方法以相同的方式定义,但我不知道如何传递这些方法.
小智 7
C#等效的函数指针是委托.您可以使用Func和Action将方法作为参数传递.Func委托表示采用N个参数并返回值的方法,Action委托表示void方法.
考虑一下
void (* myFunction)(int parameter)
Run Code Online (Sandbox Code Playgroud)
在C#中会是
Action<int>
Run Code Online (Sandbox Code Playgroud)