C#在C ++等函数中传递数组有什么办法吗?
在C ++中,我们可以传递数组加偏移量和长度非常整齐,如下所示
void myFunction(int A[], int m) // m is length of A
{
myFunction2(A+1, m - 1);
}
C#也可以吗?
答案 0 :(得分:6)
不确定。但是,您无法修改指针,因此您需要单独传递偏移量。此外,您不需要传递长度,因为所有C#Arrays都具有.Length
属性来获取数组大小。
void MyFunction(int[] A, int offset)
{
MyFunction2(A, offset + 1);
}
答案 1 :(得分:0)
在C#中,你没有传入指向数组的指针,你正在传入一个数组引用。
void myFunction(int[] array, int offset)
{
myFunction(array, offset + 1);
}
这将有效地做同样的事情。知道长度是不必要的是很重要的,因为数组本身是一个携带数组长度的对象引用。因此,您可以通过array.Length - offset