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

A generic method объявляет один или несколько параметризованных типов. Для получения дополнительной информации найдите термин generics в библиотеке классов .NET Framework, как описано в разделе «Чтобы узнать больше о среде .NET».

Используйте NET.invokeGenericMethod функция для вызова типового метода. Как вы используете NET.invokeGenericMethod зависит, является ли метод статическим или является представителем типового класса.

Использование NetDocGeneric Пример

Пример C # NetDocGeneric.cs, в matlabroot/extern/examples/NET/NetSample folder, задает простые родовые методы, чтобы проиллюстрировать NET.invokeGenericMethod синтаксис. Чтобы увидеть код, откройте файл в MATLAB® Редактор. Создайте NetDocGeneric сборка, как описано в Build a .NET Application для MATLAB Examples.

Если вы создали сборку NetDocGeneric и положите его в свой c:\work папка, введите следующие команды MATLAB, чтобы загрузить сборку:

dllPath = fullfile('c:','work','NetDocGeneric.dll');
NET.addAssembly(dllPath);

Примечание

methods и methodsview функции не перечисляют общие методы. Используйте пример отображения обобщенных методов .NET с использованием отражения.

Вызов функции члена типового класса

The GenMethod метод в NetDocGeneric.SampleClass возвращает входной параметр как тип K. Вызов GenMethod, создайте объект, cls:

cls = NetDocGeneric.SampleClass();

Преобразование 5 целочисленному типу параметров, такому как System.Int32, вызов NET.invokeGenericMethod с объектом:

ret = NET.invokeGenericMethod(cls,...
    'GenMethod',...
    {'System.Int32'},...
    5);

The GenMethodWithMixedArgs метод имеет параметризованные типизированные аргументы, arg1 и arg2, и сильно типизированный аргумент, tf, типа bool. The 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 функция.

Похожие темы