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.