Main Content

.NET ジェネリック メソッドの呼び出し

"ジェネリック メソッド" は 1 つ以上のパラメーター化型を宣言します。詳細については、.NET に関する詳細の説明に従って、.NET クラス ライブラリのドキュメンテーションで generics を検索してください。

関数 NET.invokeGenericMethod を使用してジェネリック メソッドを呼び出します。関数 NET.invokeGenericMethod の使用法は、メソッドが静的であるかどうか、またジェネリック クラスのメンバーであるかどうかによって異なります。

NetDocGeneric の例の使用

C# の例 NetDocGeneric.csmatlabroot/extern/examples/NET/NetSample フォルダーにあり、簡単なジェネリック メソッドを定義して NET.invokeGenericMethod 構文を説明します。コードを表示するには、MATLAB® エディターでファイルを開きますMATLAB 例での .NET アプリケーションのビルドで説明した NetDocGeneric アセンブリをビルドします。

アセンブリ NetDocGeneric を作成し、c:\work フォルダーに配置したら、以下の MATLAB コマンドを入力してアセンブリを読み込みます。

dllPath = fullfile('c:','work','NetDocGeneric.dll');
NET.addAssembly(dllPath);

メモ

関数 methods および関数 methodsview はジェネリック メソッドをリストしません。反射を使用した .NET ジェネリック メソッドの表示の例を使用してください。

ジェネリック クラス メンバー関数の呼び出し

NetDocGeneric.SampleClassGenMethod メソッドは、K 型として入力引数を返します。GenMethod を呼び出すには、cls オブジェクトを作成します。

cls = NetDocGeneric.SampleClass();

5System.Int32 などの整数パラメーター型に変換するには、このオブジェクトをもつ関数 NET.invokeGenericMethod を呼び出します。

ret = NET.invokeGenericMethod(cls,...
    'GenMethod',...
    {'System.Int32'},...
    5);

GenMethodWithMixedArgs メソッドは、パラメーター化型の引数である arg1arg2、および bool 型の厳密に型指定された引数 tf をもちます。tf フラグは、GenMethodWithMixedArgs が返す引数を制御します。arg1 を返すには、以下の構文を使用します。

ret = NET.invokeGenericMethod(cls,'GenMethodWithMixedArgs',...
    {'System.Double'},5,6,true);

arg2 を返すには、以下の構文を使用します。

ret = NET.invokeGenericMethod(cls,'GenMethodWithMixedArgs',...
    {'System.Double'},5,6,false);

静的ジェネリック関数の呼び出し

静的メソッド GenStaticMethod を呼び出すには、完全修飾クラス名をもつ関数 NET.invokeGenericMethod を呼び出します。

ret = NET.invokeGenericMethod('NetDocGeneric.SampleClass',...
    'GenStaticMethod',...
    {'System.Int32'},...
    5);

ジェネリック クラスの静的ジェネリック関数の呼び出し

静的関数がジェネリック クラスのメンバーである場合は、NET.GenericClass コンストラクターを使用してクラス定義を作成します。

genClsDef = NET.GenericClass('NetDocGeneric.SampleGenericClass',...
    'System.Double');

SampleGenericClass の静的メソッド GenStaticMethod を呼び出すには、クラス定義をもつ関数 NET.invokeGenericMethod を呼び出します。

ret = NET.invokeGenericMethod(genClsDef,...
    'GenStaticMethod',...
    {'System.Int32'},...
    5);

ジェネリック クラスのジェネリック関数の呼び出し

ジェネリック メソッドでジェネリック クラスと同じパラメーター化型が使用されている場合は、クラス オブジェクトから関数を直接呼び出すことができます。ジェネリック メソッドでジェネリック クラスとは異なる型が使用されている場合は、関数 NET.invokeGenericMethod を使用します。

関連するトピック