.NET ジェネリック メソッドの呼び出し
"ジェネリック メソッド" は 1 つ以上のパラメーター化型を宣言します。詳細については、.NET に関する詳細の説明に従って、.NET クラス ライブラリのドキュメンテーションで generics
を検索してください。
関数 NET.invokeGenericMethod
を使用してジェネリック メソッドを呼び出します。関数 NET.invokeGenericMethod
の使用法は、メソッドが静的であるかどうか、またジェネリック クラスのメンバーであるかどうかによって異なります。
NetDocGeneric
の例の使用
C# の例 NetDocGeneric.cs
は matlabroot
/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.SampleClass
の GenMethod
メソッドは、K
型として入力引数を返します。GenMethod
を呼び出すには、cls
オブジェクトを作成します。
cls = NetDocGeneric.SampleClass();
5
を System.Int32
などの整数パラメーター型に変換するには、このオブジェクトをもつ関数 NET.invokeGenericMethod
を呼び出します。
ret = NET.invokeGenericMethod(cls,... 'GenMethod',... {'System.Int32'},... 5);
GenMethodWithMixedArgs
メソッドは、パラメーター化型の引数である arg1
と arg2
、および 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
を使用します。