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 функция.