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