簡體   English   中英

將MATLAB方法作為.NET對象的委托傳遞

[英]Passing MATLAB methods as delegates to .NET Object

目前,我有一個使用.NET庫的MATLAB項目。 在Matlab中,我讀取了.dll並實例化了我開發的.NET對象,並將數據傳遞給它。

NET.addAssembly('myLibrary.dll');
myNetObj = myNamespace.MyClass();
myNetObj.DoWork(someMatlabVariable);

按照MATLAB文檔(請參閱此處 ),我可以將變量傳遞給.NET函數,但是我想讓.NET代碼調用matlab方法/回調。 該文檔明確定義了如何使用.NET委托MATLAB到.NET委托(請參閱此處 )。

是否可以將MATLAB函數作為.NET委托或Action傳遞(指向),以便我可以從.NET對象調用回調?

我發現了如何將Matlab函數句柄傳遞給c#中的委托。 答案隱藏在MATLAB .NET文檔中

在.NET / C#代碼中:

namespace SomeNamespace{
   // Create Delegate with appropriate input parameters and return types
   public Delegate void SomeDelegateType();

   public class SomeClass{
      // Create a Delegate for Matlab to assign to
      public SomeDelegateType SomeDelegate;
      ...
   }
}

在Matlab中:

// % Instantiate .NET object    
classInstance = SomeNamespace.SomeClass();
// % Assign matlab function handle to .NET Delegate
classInstance.SomeDelegate = SomeNamespace.SomeDelegateType(@SomeMatlabMethod);

function SomeMatlabMethod()
   ...
end

現在,當.NET代碼調用SomeDelegate() ,它將調用傳遞給它的Matlab函數SomeMatlabMethod()句柄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM