C#関数との通信を行う必要があるPythonスクリプトがあります。この関数は3つのパラメーターを想定しており、そのうち2つはout
キーワードを介して返されます。宣言は次のようになります。
RunComputation(InfoParams locInfo, out double[,] dataTable, out int numPoints){ ... }
Pythonは動的に型付けされた言語であるため、 outキーワードの処理方法がわかりません。私はいくつかの検索を行い、clr.StrongBoxとclr.Referenceに関するいくつかのものを見つけました。これらは、強く型付けされたオブジェクトを渡す必要がある状況で使用するのはかなり簡単に思えます。
numPointsパラメーターの場合、Pythonコードで次のように定義できます。
num_points = clr.Reference[int]
そして、それは大丈夫のようです。問題はdataTable配列にあります。強く型付けされたオブジェクトがdoubleの配列であることを示す構文がわかりません。それが与えるエラーは、Typeのインスタンスを予期していることを私に知らせますStrongBox[Array[float]]
。システムから配列をインポートして、そのC#タイプを参照として追加できるかどうかを確認しようとしましたが、失敗しました。何か案は?