3

C# 有什么办法可以在 C++ 之类的函数中传递数组?

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

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

C#也可以吗?

4

2 回答 2

6

当然。但是您不能修改指针,因此您需要单独传递偏移量。此外,您不需要传递长度,因为所有 C# 数组都有一个.Length属性来获取数组大小。

void MyFunction(int[] A, int offset)
{
    MyFunction2(A, offset + 1);
}
于 2012-07-25T17:32:12.333 回答
0

在 C# 中,您不是在传递指向数组的指针,而是在传递数组引用。

void myFunction(int[] array, int offset)
{
    myFunction(array, offset + 1);
}

这将有效地做同样的事情。重要的是要知道长度是不必要的,因为数组本身是一个对象引用,它携带数组的长度。所以你相对于你的例子的真实长度可以通过array.Length - offset

于 2012-07-25T17:36:43.953 回答