.NET サポートの制約
R2026bMATLAB でサポートされない .NET の機能
MATLAB® は、C# がサポートする .NET の機能をサポートしますが、以下の例外があります。
.NET Framework アセンブリのアンロード。変更およびリビルドを行った場合は、新しいコードにアクセスするために MATLAB を再起動しなければなりません。
.NET Core アセンブリをアンロードするには、
Unloadableパラメーターを true に設定してNET.addAssembly関数を呼び出してから、NET.unloadAssemblyを呼び出します。 (R2026a 以降)R2025a より前: .NET オブジェクトの MAT ファイルへの保存 (シリアル化)。
ClassName.propertyname構文による静的プロパティの設定。代わりに関数NET.setStaticPropertyを使用してください。構造体配列、スパース配列、または複素数の .NET プロパティまたはメソッドへの受け渡し。
MATLAB からの .NET クラスのサブクラス化。
public でないクラス メンバーへのアクセス。
関数
methodsまたは関数methodsviewを使用したジェネリック メソッドの表示。回避策については、反射を使用した .NET ジェネリック メソッドの表示を参照してください。入れ子にされたクラスのインスタンスの作成。回避策については、.NET の入れ子にされたクラスの使用を参照してください。
特定の下限での .NET 配列の作成。
複数 .NET オブジェクトの連結による配列化。
インターフェイス メソッドの実装。
Figure ウィンドウでの .NET 制御のホスティング。
キャスト操作。
ref型またはout型引数によるコンストラクターの呼び出し。ポインター型引数、関数ポインター、
Dllimportキーワード。.NET リモート処理。
foreach反復における MATLAB:(コロン) 演算子の使用。静的クラスで定義された .NET イベントへのイベント リスナーの追加。
標準シグネチャ非準拠のシグネチャによる .NET イベントの処理。
空の .NET オブジェクトの作成。
名前空間に属さない .NET オブジェクトの作成。
.NET 配列のサポートの制限
MATLAB は以下をサポートしません。
下限指定のある配列
.NET オブジェクトの連結による配列化
.NET 配列の最後のインデックスとしての関数
end複素数値の配列インデックス
charまたは cell 配列からジャグ配列引数への自動変換MATLAB 配列から多次元ジャグ配列引数への自動変換
.NET イベントのサポートの制限
MATLAB は、イベント ハンドラー デリゲートの標準シグネチャをもつイベントのみを処理します。
たとえば、C# のイベント ハンドラーは、以下のシグネチャをもつデリゲートです。
public delegate void MyEventHandler(object sender, MyEventArgs e)引数 sender はイベントが発生したオブジェクトを指定します。引数 e はイベント ハンドラーで使用されるデータを保持します。クラス MyEventArgs は .NET クラス EventArgs から派生します。
.NET デリゲートのサポートの制限
MATLAB では、デリゲート インスタンスの一般的な .NET メソッドへの関連付けはサポートされていません。
メソッドを非同期で呼び出す際は、以下に気を付けてください。
MATLAB はシングルスレッド アプリケーションです。したがって、MATLAB 環境で非同期呼び出しを処理すると、デッドロックが発生する可能性があります。
Microsoft® .NET に関する記事「AsyncWaitHandle の使用によるアプリケーション実行のブロック」で説明されている手法に関して、引数なしでの
WaitOne()メソッドによるオーバーロードの使用は MATLAB でサポートされていません。この手法は、Microsoft .NET Framework でのみサポートされています。EndInvokeを呼び出して非同期呼び出しが完了するまで待機させることはできません。
.NET 列挙型のサポートの制限
MATLAB では、.NET 列挙型の配列、または任意の .NET オブジェクトを作成できません。