Visual FoxPro9.0で記述されたCOMオブジェクトがあります。次の手順があります。
PROCEDURE GetArray(m.vcArrayName as String) as array
RETURN @&vcArrayName
COMオブジェクトは、C#を使用するVS2010プロジェクトで参照されます。C#でのプロシージャのシグネチャは次のとおりです。
object GetArray(string vcArrayName);
デバッグすると、戻り値が{object [1..1]}であり、タイプがobject{object[]}であることがわかります。変数を展開すると、空の文字列( "")である1つの要素を持つベース1の配列であることがわかります。
ただし、この値をobject[]にキャストすることはできません。Object[*]をObject[]にキャストできないというノルウェー語のメッセージを含むInvalidCastExceptionが常に発生します。
奇妙なことに、COMオブジェクトが2次元配列を返す場合、それをobject [、]にキャストしても問題はありません。2次元が1次元よりも扱いやすいのは非常に奇妙だと思います。
私が答えたい質問は次のとおりです。
このObject[*]ビジネスとは何ですか?それがノルウェーの例外メッセージの悪い翻訳なのか、それともObject [*]が私が聞いたことのないある種のあいまいなC#構文なのか、誰か教えてもらえますか?