1

matlabは弱い型の言語であり、C#は強い型の言語であるため、それらの相互作用は私が意図しているほど自然ではないため、ここでアドバイスを得ることができればと思います。

私の場合、matlabで1つの.NETライブラリを呼び出したいと思います。その.NETライブラリには多くのOO構造があります。私の意図は、C#ライブラリ側から今は何も変更したくないということです。matlabに相対アセンブリを追加するだけです。

たとえば、私の.netライブラリには、

class A
{
     method1 //not static method
}

class B : A
{
     ...
}

私のmatlabコードでは、クラスBの1つのオブジェクト(bなど)を取得してから、このオブジェクトのクラスAのmethod1を呼び出します。私の自然なコーディング動作は次のようになります:b.method1(val);

ただし、Matlabは以下のエラーを表示し、不幸になります。 エラー:クラスBに一致するシグネチャを持つメソッド'method1'が見つかりません

私はこの問題に関する私の研究のいくつかを投稿するかもしれません:

  1. 私はMATLAB側でオブジェクト指向プログラミングを行いません。これらのオブジェクト指向クラスはすべてdllにのみ存在します。そして、dll部分からも何も変更したくありません。

  2. 私は、サブクラスのクラスを介してスーパークラスのメソッドを呼び出すことができるいくつかの投稿を見ました:func @ superclass(val)。しかし、私が想定している私の場合には当てはまりません。

  3. githubのmongo-matlab間のドライバーに関する別の投稿を見ました。私はその詳細を調べません、そしてそれは私に私の答えを与えるかもしれません、しかし私がそのコード部分に飛び込む前に私がいくつかのアドバイスを得ることができることを願っています。

ありがとう

4

0 に答える 0