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

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 Отображения пример Обобщенных методов с использованием отражения.

Вызов 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 функция.

Похожие темы