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#でもそれを行うことができますか?
もちろん。ただし、ポインタを変更することはできないため、オフセットを個別に渡す必要があります。.Length
また、すべてのC#配列には配列サイズを取得するプロパティがあるため、長さを渡す必要はありません。
void MyFunction(int[] A, int offset)
{
MyFunction2(A, offset + 1);
}
C# では、配列へのポインターを渡すのではなく、配列参照を渡します。
void myFunction(int[] array, int offset)
{
myFunction(array, offset + 1);
}
これは効果的に同じことを行います。配列自体は配列の長さを持ち運ぶオブジェクト参照であるため、長さは不要であることを知っておくことが重要です。したがって、例に対する実際の長さは、次の方法で取得できますarray.Length - offset