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