求助 函数参数传递的问题
因我之前一直用C++的,目前一个项目必须用C#,
现在2个问题,熟悉C#的大大指导一下
问题1:
在C++中:
void f2(int a[]){}void f1(){ int a[10]; f2(a + 5); //C++中可直接传a[5]的地址给f2函数}
static void f2(int a[]){}static void f1(){ int a[10]; f2(a + 5); //C#中不可直接传a[5]的地址给f2函数}
void f2(UINT32 *a){}void f1(){ UINT8 a[10]; f2((UINT32 *)a); //C++中可直接强制把UINT8*转换为UINT32*并传给f2函数}
static void f2(uint a[]){}static void f1(){ byte a[10]; f2(???); //C#中试过,但都不成功,怎么传呢?}
unsafe class Program{ static void f2(int* a) { } static void f3(UInt32* a) { } static void f1() { fixed (int* a = new int[10]) { f2(a + 5); f3((UInt32*)a); } }}
[解决办法]
static void f2(ref int a){}static void f1(){ int a[10]; f2(ref a[5]);}