C#数组传递函数如C ++?

时间:2012-07-25 17:30:33

标签: c#

C#在C ++等函数中传递数组有什么办法吗?

在C ++中,我们可以传递数组加偏移量和长度非常整齐,如下所示

void myFunction(int A[], int m) // m is length of A
{
    myFunction2(A+1, m - 1); 
}

C#也可以吗?

2 个答案:

答案 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

获取相对于您的示例的真实长度