Вызов.NET Обобщенные методы

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

Вызов Generic Class Member Function

Метод 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);

Вызов Generic Functions типичного класса

Если общий метод использует тот же параметризованный тип в качестве типичного класса, можно вызвать функцию непосредственно на объекте класса. Если типичное использование другой тип, чем класс, используйте функцию NET.invokeGenericMethod.

Была ли эта тема полезной?