exponenta event banner

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

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

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

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

Пример C # NetDocGeneric.cs, в matlabroot/extern/examples/NET/NetSample , определяет простые общие методы для иллюстрации NET.invokeGenericMethod синтаксис. Для просмотра кода откройте файл в редакторе MATLAB ® Editor. Построить NetDocGeneric сборка, как описано в разделе Сборка приложения .NET для примеров MATLAB.

При создании сборки 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 функция.

Связанные темы