C# 有什么办法可以在 C++ 之类的函数中传递数组?
在 C++ 中,我们可以非常简洁地传递数组加上偏移量和长度,如下所示
void myFunction(int A[], int m) // m is length of A
{
myFunction2(A+1, m - 1);
}
C#也可以吗?
C# 有什么办法可以在 C++ 之类的函数中传递数组?
在 C++ 中,我们可以非常简洁地传递数组加上偏移量和长度,如下所示
void myFunction(int A[], int m) // m is length of A
{
myFunction2(A+1, m - 1);
}
C#也可以吗?
当然。但是您不能修改指针,因此您需要单独传递偏移量。此外,您不需要传递长度,因为所有 C# 数组都有一个.Length
属性来获取数组大小。
void MyFunction(int[] A, int offset)
{
MyFunction2(A, offset + 1);
}
在 C# 中,您不是在传递指向数组的指针,而是在传递数组引用。
void myFunction(int[] array, int offset)
{
myFunction(array, offset + 1);
}
这将有效地做同样的事情。重要的是要知道长度是不必要的,因为数组本身是一个对象引用,它携带数组的长度。所以你相对于你的例子的真实长度可以通过array.Length - offset