generic method объявляет один или несколько параметрированных типов. Для получения дополнительной информации ищите термин 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
функция.