A generic method объявляет один или несколько параметризованных типов. Для получения дополнительной информации найдите термин generics
в библиотеке классов .NET Framework, как описано в разделе «Чтобы узнать больше о среде .NET».
Используйте NET.invokeGenericMethod
функция для вызова типового метода. Как вы используете NET.invokeGenericMethod
зависит, является ли метод статическим или является представителем типового класса.
NetDocGeneric
ПримерПример C # NetDocGeneric.cs
, в matlabroot
/extern/examples/NET/NetSample
folder, задает простые родовые методы, чтобы проиллюстрировать NET.invokeGenericMethod
синтаксис. Чтобы увидеть код, откройте файл в MATLAB® Редактор. Создайте NetDocGeneric
сборка, как описано в Build a .NET Application для MATLAB Examples.
Если вы создали сборку NetDocGeneric
и положите его в свой c:\work
папка, введите следующие команды MATLAB, чтобы загрузить сборку:
dllPath = fullfile('c:','work','NetDocGeneric.dll'); NET.addAssembly(dllPath);
Примечание
methods
и methodsview
функции не перечисляют общие методы. Используйте пример отображения обобщенных методов .NET с использованием отражения.
The GenMethod
метод в NetDocGeneric.SampleClass
возвращает входной параметр как тип K
. Вызов GenMethod
, создайте объект, cls
:
cls = NetDocGeneric.SampleClass();
Преобразование 5
целочисленному типу параметров, такому как System.Int32
, вызов NET.invokeGenericMethod
с объектом:
ret = NET.invokeGenericMethod(cls,... 'GenMethod',... {'System.Int32'},... 5);
The GenMethodWithMixedArgs
метод имеет параметризованные типизированные аргументы, arg1
и arg2
, и сильно типизированный аргумент, tf
, типа bool
. The 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');
Чтобы вызвать статический метод GenStaticMethod
от SampleGenericClass
, вызов NET.invokeGenericMethod
с определением класса:
ret = NET.invokeGenericMethod(genClsDef,... 'GenStaticMethod',... {'System.Int32'},... 5);
Если родовой метод использует тот же параметризованный тип, что и родовой класс, можно вызвать функцию непосредственно к объекту класса. Если дженерик использует другой тип, чем класс, используйте NET.invokeGenericMethod
функция.